17413
문제
접근
- <가 시작하면 문자열을 그대로 출력한다.
- >가 나오면 다음 문자부터 띄어쓰기까지 뒤집는다.
- 문자열을 토큰으로 받는다.
- 문자열을 받는 함수를 작성하고 뒤집힌 문자열을 리턴한다.
가정
- <가 시작하면 그대로 출력하고 >가 나오면 다음 문자열 토큰은 뒤집으면 되겠다.
풀어보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String originalString = reader.readLine();
StringTokenizer tokenizer = new StringTokenizer(originalString, "<> ", true);
boolean isTagged = false;
while(tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
if(token.equals("<")){
isTagged = true;
}
if(token.equals(">")){
isTagged = false;
}
if(isTagged){
System.out.print(token);
}
if(!isTagged){
token = String.valueOf(reverseString(token));
System.out.print(token);
}
}
}
public static StringBuilder reverseString(String str){
StringBuilder s = new StringBuilder();
for(int i = str.length() - 1; i >= 0; i--){
s.append(str.charAt(i));
}
return s;
}
}
시행착오
- StringTokenizer를 잘 사용하지 않아서 사용법을 익히는데 약간의 시간이 소요됨
- StringBuilder를 통해 문자열을 리턴할 때는 String.valueOf로 타입 변환해야됨
StringTokenizer
StringTokenizer 사용법
StringBuilder
StringBuilder
참고
Why use StringBuffer and StringBuilder