有的时候我们业务中需要实现字符串发展的功能,但是Java中并没有提供相应的字符串反转类。那么Java怎样反转字符串呢?今天华清Java学院小编为大家分享一下Java字符串反转的代码实现。
Java字符串反转代码设计思路:
1. 首先将字符串转换成数组,一个数组元素放一个字符。
2. 循环遍历字符串,将所有字符串前后字符调换位置,比如:第一个和后一个调换,第二个和倒数第三调换,第三个和倒数第三调换,直到所有字符调换完毕。
3. 通过以上两步得到了字符顺序完全颠倒的新字符串。
下面是Java字符串反转的具体代码实现:可以将1 2 3 4 5 转换成5 4 3 2 1
1 public class reverse {
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 }
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
其实办法很简单,
以空格为分隔符,将空格之间的字符再次翻转就可以了。
1 public class reverse {
3 //public static void main(String[] args)
4 public void swap(char[] arr,int begin,int end){
5 //String str = "1 2 3 4 5";
6 while(begin < end) {
7 char temp = arr[begin];
8 arr[begin] = arr[end];
9 arr[end] = temp;
10 begin++;
11 end--;
12 }
14 //for (int i = 0; i < arr.length-1; i++)
15 // System.out.println(arr[i]);
16 // return new String(arr).toString();
18 }
20 public String revWord(String str){
21 char[] arr = str.toCharArray();
22 swap(arr,0,arr.length-1);
23 int begin=0;
24 for (int i=0;i
25 {if (arr[i]==' ')
26 {swap (arr,begin,i-1); begin=i+1;}
27 } return new String(arr);
28 }
29 public static void main(String[] args) {
30 String str = "how are you";
31 System.out.println(new reverse().revWord(str));
}}
热点新闻