countTokens()라는 메소드를 모르고 짠 코드
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 br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int i = 0;
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
i++;
}
System.out.println(i);
}
}
hasMoreTokens를 이용해 i를 1씩 증가시키면서 단어들의 갯수를 세려고 했지만 마음먹은대로 코드가 실행되지 않았다. 저렇게 while문 안에 출력문이 있으면 i가 카운트되지만 출력문이 사라지면 while문이 무한반복되었다. 출력을 해야 토큰을 나누는건지.. 아직 잘 모르겠다
이건 countTokens()를 알고 난 뒤의 코드
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 br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
System.out.println(st.countTokens());
}
}
역시 간편하다. 아직 모르는 메소드가 많다. 사용법을 더 익혀야겠다.