2014-01-17 4 views
0

저는 단어 단위로 문자열을 뒤집고 모든 공백, 탭 및 공백 문자 등이 변경되거나 제거되지 않도록 노력하고 있습니다. Java를 사용하는 몇 가지 솔루션을 시도했지만 좋은 결과가 없습니다. 예를 들어, 문자열자바에서 공백을 바꾸지 않고 문자열을 반대로합니다.

The rule  about++[]  the  input 

     stream. 

다음 변환 및 공백 문자를 제거하지 않고이 같은 출력을 얻을. 로이 tuoba++[]처럼 보여주는 곳

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해야한다. 이 문제를 해결할 수있는 방법은 없습니까?

+0

기대 한 결과에 따르면 예상 출력에는'tuoba ++ []'대신 [] [++ tuoba0']와 (과) 반대로되어 있어야합니까? – Rakesh

답변

2

시도는 공백이 아닌 모든 문자를 포함 할 것이다

if (Character.isAlphabetic(ch)) { 

if (!Character.isWhitespace(ch)) { 

이 방법

에 변화. 그렇지 않으면 ] + 인 알파벳 문자 만 뒤집을 수 있습니다.

2

+[]은 알파벳순이 아니므로 공백을 치료하는 것과 같은 방식으로 취급합니다. Character.isWhitespace은 문제를 해결하는 데 도움을줍니다.

관련 문제