java 字符串反转

java

描述:给我一个字符串,例如I love java,输出: java love I

 

方法一

 1 public class StringReverse {

2

3 public void swap(char[] arr, int begin, int end) {

4 while(begin < end) {      

5 char temp = arr[begin];

6 arr[begin] = arr[end];

7 arr[end] = temp;

8 begin++;

9 end--;

10 }

11 }

12 //I love java

13 public String swapWords(String str) {

14 char[] arr = str.toCharArray();

15 swap(arr, 0, arr.length - 1);    //第一次反转,结果为avaj evol I

16 int begin = 0;

17 for (int i = 1; i < arr.length; i++) {

18 if (arr[i] == ' ') {       //第二次和三次反转,结果分别为java evol I和java love I

19 swap(arr, begin, i - 1);    

20 begin = i + 1;

21 }

22 }

23

24 return new String(arr);

25 }

26

27 public static void main(String[] args) {

28 String str = "I love java";

29 System.out.println(new StringReverse().swapWords(str));

30 }

31 }

方法二:(利用jdk提供的方法)

 1 public class fanzhuan {

2

3 public static void main(String[] args) {

4 String str = "I love java";

5 String[] sArr = str.split(" ");//I love java

6 List<String> list = new ArrayList<String>();

7 list = Arrays.asList(sArr);  //此时list为[I,love,java] 

8 Collections.reverse(list);      //reverse方法直接反转list的每个元素,反转后为[java,love,I]

9

10 for(String word:list){

11 System.out.print(word+" ");

12 }

13 }

14 }

另外,如果描述改一下,输入一个字符串,例如“abcd”,输出"dcba",

 

当然了方法很多,这里我提供一个jdk自带的方法,比较简单

 1 package sundemo2;

2

3 public class fanzhuan {

4 public static void main(String[] args){

5 String str = "my name is 周杰伦";

6 System.out.println(reverse(str));

7

8 }

9 public static String reverse(String str){

10 return new StringBuilder(str).reverse().toString();

11 }

12 }

 1 package sundemo2;

2

3 public class fanzhuan {

4 public static void main(String[] args){

5 String str = "my name is 周杰伦";

6

7 for(int i = str.length() - 1; i >= 0; i--){

8 System.out.print(str.charAt(i));

9 }

10 }

11 }

以上是 java 字符串反转 的全部内容, 来源链接: utcz.com/z/391442.html

回到顶部