코딩/백준
[백준 1152번/문자열] 단어의 개수 - Java
조밈밍
2022. 3. 9. 12:19
* 맨앞부분, 맨뒷부분 공백이 나올 경우도 생각해야한다
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int count = 0;
for(int i=0; i<s.length(); i++) {
char ch = s.charAt(i);
if(ch == ' ') {
count++;
}
}
if(s.charAt(0) == ' ') {
count -= 1;
}
if(s.charAt(s.length()-1) == ' '){
count -= 1;
}
System.out.println(count+1);
}
}
내가 푼거 => 간결하지 않다😅
공부
찾아보니 StringTokenizer라는 자바 API가 있었다.
: 지정한 구분자로 문자열을 나눠주는 클래스, 그렇게 나눠진 문자열을 토큰(token)이라 부른다.
: StringTokenizer 객체명 = new StringTokenizer(배열명, 구분문자);
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
// 공백을 기준으로 s를 나눈 토큰들을 st에 저장
StringTokenizer st = new StringTokenizer(s," ");
// countTokens() 토큰의 개수 반환
System.out.println(st.countTokens());
}
}
이렇게 아주 간단하게 할 수 있다👍