zoukankan      html  css  js  c++  java
  • 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

    其实办法很简单,

    以空格为分隔符,将空格之间的字符再次翻转就可以了。

     1 public class reverse {
     2 
     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             }
    13 
    14       //for (int i = 0; i < arr.length-1; i++)
    15      // System.out.println(arr[i]);
    16     //            return new String(arr).toString();
    17 
    18     }
    19     
    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<arr.length;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));
    32     }
    33     }
  • 相关阅读:
    EntytyFramework批量更新
    EntityFramework批量Insert
    asp.net MVC Session锁的问题
    谈谈ThreadStatic
    C#中XmlSerializer的内存占用问题
    转:【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链
    面试心得
    Part 39 AngularJS route change events
    Part 38 AngularJS cancel route change
    Part 37 Difference between $scope and $rootScope
  • 原文地址:https://www.cnblogs.com/clarke157/p/5267379.html
Copyright © 2011-2022 走看看