본문 바로가기
Codingtest

[JAVA] 백준1152번 구현,문자열

by Runningturtle 2024. 4. 10.

https://www.acmicpc.net/submit/1152/76690234

 

로그인

 

www.acmicpc.net

 

문제

영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

입력

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

출력

첫째 줄에 단어의 개수를 출력한다.

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String st = sc.nextLine(); 
      
    String blank = " "  ;
    String[] s = st.split(" ");

        int j=0;
    for(String i : s){
        if(i == ""){
            continue;
        }
        j++;
    }
    System.out.print(j);
        
    }
}


    //.getClass().getName() 자료형확인메소드드
    //어레이길이는 .length 스트링은 .length()
    //스트링 인덱스 접근 .charAt() 반환값은 character
    //스트링 부분변환 .replace()
    //String.valueOf 스트링으로 변환

    // 스트링 공백 확인이 == " " 로 확인이 안됌
    // " " == " "이 아니라 " " == "" 임

 

※ 풀이방법

: Split함수를 이용하고 변화된 for문 사용으로 인덱스 참조

공백을 == 연산자로 비교할때 공백은 " "이 아니라 ""라는점!!!