문자열 - 단어의 개수
in Algorithm
단어의 개수(1152)
문자열에 공백이 들어갈 경우 if 문으로 분기를 해주지 않으면
공백임에도 불구하고 1이라는 값을 반환한다.
// Solve 1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String S = in.nextLine();
// 값이 없는 경우 || 공백인 경우
if (S.isEmpty() || S.equals(" ")) {
System.out.println(0);
} else {
String[] list = S.trim().split(" ");
System.out.println(list.length);
}
}
}
// Solve 2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String S = in.nextLine();
StringTokenizer st = new StringTokenizer(S, " ");
System.out.println(st.countTokens());
}
}
StringTokenizer
✓ 긴 문자열을 지정된 구분자를 기준으로 토큰(token)이라는 여러 개의 문자열로 나눈다.
✓ 구분자로 단 하나의 문자 밖에 사용하지 못한다.
✓ 구분자를 토큰으로 간주할지 여부는 생성자의 3번째 매개변수로 설정할 수 있다.
✓ count()
: 전체 토큰의 수를 반환한다.
Trim
문자열을 앞 또는 뒤에 공백이 있을 경우 trim()
을 사용하면 제거할 수 있다.
String s = " trim 메서드 테스트 ";
System.out.println(s.trim());
// → "trim 메서드 테스트"