java练习 - 字符串反转
思路:
1. 首先将字符串转换成数组,一个数组元素放一个字符。
2. 循环遍历字符串,将所有字符串前后字符调换位置,比如:第一个和最后一个调换,第二个和倒数第三调换,第三个和倒数第三调换,直到所有字符调换完毕。
3. 通过以上两步得到了字符顺序完全颠倒的新字符串。
下面是代码实现:可以将1 2 3 4 5 转换成5 4 3 2 1
1 public class reverse {
2
3 //public static void main(String[] args)
4 public String swap(String str){
5 //String str = "1 2 3 4 5";
6 char[] arr = str.toCharArray();
7 int begin=0; int end=arr.length-1;
8 while(begin < end) {
9 char temp = arr[begin];
10 arr[begin] = arr[end];
11 arr[end] = temp;
12 begin++;
13 end--;
14 }
15
16 //for (int i = 0; i < arr.length-1; i++)
17 // System.out.println(arr[i]);
18 return new String(arr).toString();
19 }
20 public static void main(String[] args) {
21 String str = "a b c d";
22 System.out.println(new reverse().swap(str));
23 }
24 }
虽然上面的方法可以实现字符串翻转,如果我们想把How are you翻转成you are How呢?上面的方法只能转换为 uoy era woH
其实办法很简单,
以空格为分隔符,将空格之间的字符再次翻转就可以了。
public class reverse {
//public static void main(String[] args)
public void swap(char[] arr,int begin,int end){
//String str = "1 2 3 4 5";
while(begin < end) {
char temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
begin++;
end--;
}
//for (int i = 0; i < arr.length-1; i++)
// System.out.println(arr[i]);
// return new String(arr).toString();
}
public String revWord(String str){
char[] arr = str.toCharArray();
swap(arr,0,arr.length-1);
int begin=0;
for (int i=0;i<arr.length;i++)
{if (arr[i]==' ')
{swap (arr,begin,i-1); begin=i+1;}
} return new String(arr);
}
public static void main(String[] args) {
String str = "how are you";
System.out.println(new reverse().revWord(str));
}
}
java练习 - 字符串反转的更多相关文章
- JAVA实现字符串反转,借助字符数组实现
public static String reverseStr(String str) { int len = str.length(); char ch[] = str.toCharArray(); ...
- Java-Runoob-高级教程-实例-字符串:05. Java 实例 - 字符串反转
ylbtech-Java-Runoob-高级教程-实例-字符串:05. Java 实例 - 字符串反转 1.返回顶部 1. Java 实例 - 字符串反转 Java 实例 以下实例演示了如何使用 J ...
- Java实现字符串反转的8种方法
/** * */ package com.wsheng.aggregator.algorithm.string; import java.util.Stack; /** * 8 种字符串反转的方法, ...
- Java实现字符串反转
替换原则:index k 的值和 n-k 的值进行交换.(始终记住程序员的n.k都是字符串的实际位置.) 乘除的最基本实现还是来源于移位操作. public String reverse(String ...
- JAVA:字符串反转
import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Lis ...
- Java 实现字符串反转
方法一: public class StringReverse { public void swap(char[] arr, int begin, int end) { while(begin < ...
- Java将字符串反转的7种方法
/方法1 递归方法 public static String reverse1(String s) { int length = s.length(); if(length <= 1){ ret ...
- java实现字符串反转(原作有点错误,需要看下评论)
http://blog.csdn.net/shenshen123jun/article/details/9104025
- Java实现字符串反转【Leetcode】
Write a function that reverses a string. The input string is given as an array of characters char[]. ...
随机推荐
- 揭开Html 标签的面纱,忘不了的html .
Html :(Hypertext MarkupLanguage),是用于描述网页文档的一种标记语言,是一种标准,它通过标记符号来标记要显示的网页中的各个部分.其本身是一种文本文件,通过在文本文件中添 ...
- javadataAbout stack and heap in JAVA(2)
改章节个人在上海喝咖啡的时候突然想到的...近期就有想写几篇关于javadata的笔记,所以回家到之后就奋笔疾书的写出来发表了 The stack is much faster than the he ...
- 微信内嵌H5网页 解决js倒计时失效
项目要求:将H5商城页面嵌套到公司微信公众号里 项目本身的开发跟移动端网页并无太多差异,只是这昨天遇到一个问题,说是棘手,到也简单. 用户下单后,在选择支付方式页面,有个倒计时的逻辑(从下单时开始计算 ...
- 日志快速筛选 之 linux命令grep|uniq|wc|awk
以前我个人的观念是,在线上运行的东西尽量不要记什么流水日志. 但是后来我变了,发现在线上记日志是一个绝对有必要的东西,尤其是在当下很流行的微服务的推动下,没有日志的帮助,犹如一个睁眼瞎,排查问题基本靠 ...
- oc之封装与类之间的关系
1. 面向对象的特征-封装? 封装: 现实生活中的封装: 将很多的小东西 塞在1个大口袋里面. 好处: a. 对外部屏蔽. b. 方便管理. 代码的封装: 函数/方法 就是1种封装的体现: 将一段代码 ...
- [ios2]OS 6 SDK: 在应用内展示App Store【转】
出于什么样的原因你会希望用户从你的iOS app中进入App Store呢?可能你想用户去App Store 为你的应用评分,也可能你希望用户看到你其他的iOS app.iOS 6引入了SKStore ...
- 办理滑铁卢大学(本科)学历认证『微信171922772』UW学位证成绩单使馆认证University of Waterloo
办理滑铁卢大学(本科)学历认证『微信171922772』UW学位证成绩单使馆认证University of Waterloo QQ/微信171922772办理毕业证成绩单.真实使馆及教育部学历认证★诚 ...
- NodeJS 实现 客户端 js 加密
NodeJS 实现 客户端 js 加密 思路: 服务端渲染业务代码js => 前后端约定加密算法 => 业务代码进行签名 => 客户端解密业务代码 => eval 执行 Nod ...
- TypeScript开发ReactNative之fetch函数的提示问题
使用TypeScript开发ReactNative时,发现在类中调用 fetch 函数时IDE可能会提示找不到,无法加载,特别是当类中存在同名的 fetch 成员方法时更是郁闷了,虽然程序是可以执行的 ...
- yarn计算一个节点容量及其配置项
mapred-site.xml mapreduce.map.memory.mb 1536 每个Map Container的大小 mapreduce.reduce.memory.mb 2560 每个Re ...