2014-01-17 22 views
0

我正在逐字反轉字符串並確保所有空格,製表符和空格字符等不會被更改或刪除。我已經嘗試了幾個使用Java的解決方案,但結果沒有好的結果。例如,要轉換以下字符串在不改變java中的空格的情況下反轉字符串

The rule  about++[]  the  input 

     stream. 

並獲得像這樣的輸出而不刪除任何空格字符。

ehT elur  tuoba++[]  eht  tupni 

     maerts. 

我的代碼

String reverseString(String str) { 
    StringBuilder temp = new StringBuilder(); 
    StringBuilder result = new StringBuilder(); 
    for (char ch : str.toCharArray()) { 
     if (Character.isAlphabetic(ch)) { 
      temp.append(ch); 
     } else { 
      result.append(temp.reverse()).append(ch); 
      temp.delete(0, temp.length()); 
     } 
    } 
    result.append(temp); 
    return result.toString(); 
} 

我得到相同的結果有一個問題,這個詞about++[],應][++tuoba0凡爲 它顯示這樣tuoba++[]。任何方式來解決這個問題?

+0

根據你的期望,不應該預期的輸出有''[++ ++''顛倒爲'] [++ tuoba0'而不是'tuoba ++ []'? – Rakesh

回答

2

嘗試改變

if (Character.isAlphabetic(ch)) { 

if (!Character.isWhitespace(ch)) { 

這樣,您將包括沒有空格的所有字符。否則,只會反轉字母字符,其中[]+不是。

2

+[]不是按字母順序排列的,所以你對待它們的方式與對待空白相同。 Character.isWhitespace可以幫助你解決你的問題。

相關問題