-
[백준 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()); } }
이렇게 아주 간단하게 할 수 있다👍
'코딩 > 백준' 카테고리의 다른 글
[백준 10870번/재귀] 피보나치 수 5 - Java (0) 2022.03.16 [백준 10809번/문자열] 알파벳 찾기 - Java (0) 2022.03.07 [백준 1157번/문자열] 단어공부 - Java (0) 2022.03.06 [백준 11720번/문자열] 숫자의 합 - Java (0) 2022.03.05 [백준 8958번/1차원 배열] OX퀴즈 - Java (0) 2022.03.01