Java中String類的字符串的反轉


將一整個字符串進行的反轉

(只需要調用String類中的反轉方法即可,比較簡單)


package changYongLei;
// reverse() 將此字符序列用其反轉形式取代。--------StringBuffer  /  StringBuilder

public class FanZhuan_String {
  public static void main(String[] args) {
/* 方法一:*/ StringBuffer sb1 = new StringBuffer("To be or not to be");
    System.out.println(sb1.reverse());//使用現成的 reverse() 方法完成字符串的反轉


/* 方法二:*/ StringBuilder sb2 = new StringBuilder("To be or not to be") ;
    System.out.println(sb2.reverse());
 } 
}

在這裏插入圖片描述


將一個字符串中的每一個單詞分別進行翻轉


編寫一個程序,將下面的一段文本中的各個單詞的字母順序翻轉,例如將“To be or not to be",變成"oT eb ro ton ot eb."。

package changYongLei;

import java.util.Scanner;

public class FanZhuan_String2 {
 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = null;
        if(sc.hasNext()) {
            str = sc.nextLine();
        }
        if(str == null){
            System.out.println("");
        }else {
            String[] ss = str.split(" {1,}");

            //用多個空格分隔符進行分隔。split(" {1,}").。注意是空格加{1,}。
            // 就是說以1個空格或者1個以上空格分隔。如果是用兩個或者以上空格split(“ {2,}”)。
            for (int i = 0; i < ss.length; i++) {
                StringBuilder builder = new StringBuilder();
                if (i == ss.length - 1)
                    System.out.print(builder.append(ss[i]).reverse() + ".");
                else
                    System.out.print(builder.append(ss[i]).reverse() + " ");
            }
        }
    }
}

在這裏插入圖片描述
方法二:(簡單的方法,簡潔好用)

package changYongLei;

import java.util.Scanner;

public class FanZhuan_String3 {
 public static void main(String[] args) {
  Scanner in =  new Scanner(System.in);
  String x=in.nextLine();
  String arr[]=x.split(" ");
  for(int i=0;i<=arr.length-2;i++) {
   StringBuffer sb=new StringBuffer(arr[i]);
   System.out.print(sb.reverse()/*.toString()*/+" ");
  }
  StringBuffer sb=new StringBuffer(arr[arr.length-1]);
  System.out.print(sb.reverse()/*.toString()*/+".");
 }
}

一些小小的解釋說明


.hasNext() 是什麼意思?
//這是java的迭代器的用法。
 1)使用方法 iterator()要求容器返回一個 Iterator。第一次調用度Iterator 的next()方法時,知它返回序列的第一個道元素。版
2)使用next()獲得序列中的下一個元素。
3)使用hasNext()檢查序列中是否還有元素。
4)使用remove()將上一次返回的權元素從迭代器中移除。 
hasNext()是Scanner類的一個方法,判斷是否有輸入,有輸入項,a .hasNext()true,沒有輸入項,a .hasNext()false 
split的用法Java中split主要用於分隔字符串。
1、如果用“.”作爲分隔的話,必須是如下寫法,String.split("\\."),這樣才能正確的分隔開,不能用String.split(".")
2、如果用“|”作爲分隔的話,必須是如下寫法,String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|"),“.”和“|”都是轉義字符,必須得加"\\"
Java中split使用注意事項:
1、要被分解的String對象或文字,該對象不會被split方法修改。
2、字符串或正則表達式對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數組。 
3、該值用來限制返回數組中的元素個數(也就是最多分割成幾個數組元素,只有爲正數時有影響)
4、split 方法的結果是一個字符串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator不作爲任何數組元素的部分返回。
那是字符串分割的方法zd比如有個字符串是這樣的 String str = "boo:and:foo";調用它的方版法 str.split(":");意思是以“:”分割上面的字符串。返回權一個字符串數組,數組裏面就是{ "boo", "and", "foo" } 
ext()一定要讀取到有效字符後纔可以結束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,next()方法會自動將其去掉,
  只有在輸入有效字符之後,next()方法纔將其後輸入的空格鍵、Tab鍵或Enter鍵等視爲分隔符或結束符。
  簡單地說,next()查找並返回來自此掃描器的下一個完整標記。
  完整標記的前後是與分隔模式匹配的輸入信息,所以next方法不能得到帶空格的字符串而nextLine()方法的結束符只是Enter鍵,
  即nextLine()方法返回的是Enter鍵之前的所有字符,它是可以得到帶空格的字符串的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章