2015-04-23 93 views
0
Scanner input = new Scanner(System.in); 
    String userInput = input.nextLine(); 
    String letterArray[] = new String[userInput.length()]; 


    for(int i = 0; i < userInput.length(); i++){ 
     letterArray[i] = userInput.substring(i, i+1); 
    } 

    for(int j = userInput.length()-1; j>=0; j--){ 
     System.out.print(letterArray[j]); 
    } 

我已經存儲了用戶輸入,現在我想反轉他們輸入的內容並將反轉形式存儲爲字符串。如何將字符串增量存儲爲串聯的字符串?

我已經設法將字符串顯示爲已存儲在數組中的每個字母增量的疊加,我該如何將反轉形式存儲爲字符串?

回答

0

如果你只是想打印出來扭轉你可以這樣做:

Scanner input = new Scanner(System.in); 
String userInput = input.nextLine();  
for(int i=1;i<=userInput.length();i++){ 
     System.out.print(userInput.charAt(userInput.length()-i)); 
    } 

除此之外,如果你wanto把字符串數組可以用更簡單的方法,如:字符串[] = letterArray userInput .split ( 「」);

如果你想將它存儲爲一個數組或一個新的字符串,你可以這樣做:

掃描儀輸入=新的掃描儀(System.in);

String userInput = input.nextLine();  
Char[] characters=new Char[userInput.length]; 
for(int i=1;i<=userInput.length();i++){ 
     characters[i-1]=userInput.charAt(userInput.length()-i); 
     System.out.print(characters[i-1]); 

    } 
String newString=new String(characters); 

有很多可能性。

0

您可以通過不同的方式獲得反轉的java.lang.String

最安全的將被使用java.lang.StringBuilder.reverse()方法:

System.out.println(new java.lang.StringBuilder("abc").reverse().toString()); 

如果你想學習如何遍歷人物和你所希望的方式添加它們,可以使用StringBuilder,通過附加的人物之一一個與java.lang.StringBuilder.append(char c)方法。

警告:不常見的情況下。

有一種特殊情況,你不能改變字符的順序,甚至不能反轉它們。

它指的是UTF-16的替代對。這些是Java java.lang.String(如字符c1和c2)中的單個字符對,但實際上是指單個Unicode字符。

如果您構建一個字符串反轉該對(c2然後c1)中的字符,您將構建一個不正確的字符串。

更新:我剛剛看到,StringBuider.reverse()方法的文檔中明確地描述了有關代理對的相關內容。請在此閱讀:http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#reverse()