[HackerRank]-Java String Tokens
열두번 째 해커랭크 문제 기초이다.
Sample Input
He is a very very good boy, isn’t he?
Sample Output
10
He
is
a
very
very
good
boy
isn
t
he
예시 설명
문자열 입력받고 모든 알파벳, 공백을 제외한 나머지를 기준으로 나누다. 나눠진 수와 나눠진것들을 출력한다.
코드
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
s = s.replaceAll("[^a-zA-Z]"," ");
StringTokenizer tokens = new StringTokenizer(s); // 객체 선언
System.out.println(tokens.countTokens());
while(tokens.hasMoreTokens()) System.out.println(tokens.nextToken());
}
}
설명
import는 따로 StringTokenizer 가 있다. 문자열 입력받고 replaceAll로 a부터z까지, A부터까지 아닌것들을 ‘^’로 표현해 공백으로 바꾼다. countTokens()로 토큰들의 갯수 출력한다. hasMoreTokens()로 다음 토큰이 있는지 여부를 알 수 있다. hasNext()처럼 말이다. nextToken()으로 다음 토큰 출력한다.
요약
countTokens()로 토큰들의 갯수 반환한다. hasMoreTokens()로 다음 토큰이 있는지 여부를 알 수 있다. nextToken()으로 다음 토큰 반환한다.