2015-11-05 81 views
2

如何將char字符左右移動到字符串中?char變量的java字符串迭代

+0

您會希望首先分離單詞,您可以使用'split(「」);'來做這些事情,如Viswanath的答案中所示。然後,您可以使用現在的for循環分別處理每個單詞。你需要另一個(外部)'for'循環來處理所有的單詞。 – Kayaman

回答

0

試試這個:

StringBuilder builder = new StringBuilder(); 
String[] charArray = encoded.split(" "); 
for(int i = charArray.length-1 ; i >= 0; i--){ 
    builder.append(charArray[i]); 
} 
String decoded = builder.toString(); 
2

反向讀取輸入字符串,你需要保持每一個角色上的每個字的索引爲奇數和任何空白字符。

你可以從這段代碼開始。將其看作PoC來演示邏輯。優化是可能的。

String encoded = "bxoqb swi eymrawn yim"; 
StringBuilder decoded = new StringBuilder(); 
boolean keep = true; 
for (int i = encoded.length() - 1; i >= 0; i--) { 
    if (encoded.charAt(i) != ' ') { 
     if (keep) { 
      decoded.append(encoded.charAt(i)); 
     } 
     keep = !keep; 
    } else { 
     decoded.append(' '); 
     keep = true; 
    } 
} 
System.out.println("decoded = " + decoded); 

輸出

decoded = my name is bob 

解釋

  • for-loop處理串向後,所以字符被作爲miy nwarmye iws bqoxb
  • 可變處理i保持串在當前指數位置encoded
  • ,因爲我們只想保留在奇數位置中的字符,字變量keep用作指示器
  • 當變量keeptrue我們追加當前字符(在串encoded所述一個上i位置)到字符串緩衝區decoded
  • 如果當前處理的字符不是keep值被否定(真陽性>假,假>真),所以我們在每個附加字符奇數位
  • ,我們需要保持之間的話我們也有分別對待這一點,每個追加到decodedkeep設置爲true所以下一個非空白字符也會被添加
+0

你的個人信息稱「渴望與他人分享知識(」最好的學習方式是教「 - 弗蘭克奧本海默)」。然而,你不是在教學,你正在給出答案。對於顯而易見的學生/家庭作業問題而言,它會更有用,可以提供建議,以便他們自己找到解決方案。 – Kayaman

0

你必須請使用StringBuffer來翻轉句子。然後您可以使用單詞之間的空格逐詞分開您的句子。在掌握了基本的Java知識之後...

 String ss = "bxoqb swi eymrawn yim"; 
    StringBuilder buffer = new StringBuilder(ss); 
    String word[] = buffer.reverse().toString().split(" "); 
    for (String word1 : word) { 
     char c[]=word1.toCharArray(); 
     for(int x=0;x<c.length;x++){ 
      if(x%2==0){ 
       System.out.print(c[x]); 
      } 
     } 
     System.out.print(" "); 
    }