백준코딩테스트

[백준1152] 단어의 개수

초보개발자 신씨 2022. 10. 30. 20:36
반응형

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열

www.acmicpc.net

풀이

더보기

split과 StringTokenizer객체 차이

split() : 지정한 구분자로 문자열을 나눠 배열에 저장 ##공백 문자열도 포함
StringTokenizer : 공백 포함X

속도 : StringTokenizer > split

1) split

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String sentance = sc.nextLine(); //공백 포함,,,, next() : 공백 전까지 입력받은 문자열 반환

        String[] words = sentance.split(" "); //공백 기준으로 문장 자르기

        int count = 0 ;

        for (int i = 0 ; i < words.length ; i++){
            if (!words[i].equals("")){  //공백 제외
                count+=1;
            }
        }

        System.out.println(count);

    }
}

2) 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 sentance = sc.nextLine(); //공백 포함,,,, next() : 공백 전까지 입력받은 문자열 반환

        StringTokenizer stk = new StringTokenizer(sentance, " ");

        System.out.println(stk.countTokens());
    }
}
반응형