CodeWars 열 두 번째 문제
Updated:
Stop gninnipS My sdroW!
public class SpinWords {
public String spinWords(String sentence) {
StringTokenizer sTokenizer = new StringTokenizer(sentence, " ");
StringBuffer sentenceBuffer = new StringBuffer();
while(true) {
String word = sTokenizer.nextToken();
if(word.length() >= 5) {
sentenceBuffer.append(new StringBuffer(word).reverse());
} else {
sentenceBuffer.append(word);
}
if(sTokenizer.hasMoreTokens()) {
sentenceBuffer.append(" ");
} else {
break;
}
}
return sentenceBuffer.toString();
}
}
*문제는 어렵지 않았다. 그런데 아래와 같이 간단하게 코딩 할 수 있었다.
String[] words = sentence.split(" ");
for (int i=0; i<words.length; i++) {
if (words[i].length() >= 5) {
words[i] = new StringBuffer(words[i]).reverse().toString();
}
}
return String.join(" ",words);
*StringTokenizer을 썼는데 String의 split을 사용하면 더 편했다.
*StringBuiler의 reverse를 통해서 쉽게 문자열을 역순 할 수 있었다.
*String, StringBuiler, StringBuffer의 차이점은 따로 java 개념 포스트로 올렸다.
*String의 join을 처음 알게 되었다. 이 또한 따로 java 개념 포스트(String 편)으로 올렸다.