• 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 }
  • 相关阅读:
    传输层——UDP报文头介绍
    传输层——TCP报文头介绍
    网络层——IP报文头介绍
    数据链路层——以太网包头介绍
    POJ2752 (Seek the Name, Seek the Fame,kmp)
    POJ2406 Power Strings
    HNOI2008 玩具装箱toy (BZOJ1010,斜率dp)
    Covered Walkway(HDU4258,dp斜率优化)
    HDU3507 Print Article
    POJ1821 Fence
  • 原文地址:https://www.cnblogs.com/xiaoluosun/p/4253266.html
Copyright © 2020-2023  润新知