본문 바로가기

Algorithm/BOJ

[ BOJ ] 10820 문자열 분석 B2 (JAVA)

반응형


 

 

10820번: 문자열 분석

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있

www.acmicpc.net

문제 이해
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
아이디어
1. 문자열 입력 부분을 어떻게?
   - null 값이 들어오지 않을 때 까지 입력

2. 각 입력값의 구분(소문자인지 대문자인지 숫자인지 공백인지)
   - 'a'~'z' , 'A'~'Z', '0'~'9', ' ' 
코드
import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = "";
		int s, d, n, z;
		while ((str = br.readLine()) != null) {
			s = d = n = z = 0;
			for(int i=0;i<str.length();++i) {
				char val = str.charAt(i);
				if('a' <= val && val <='z') ++s;
				else if('A'<=val && val <='Z') ++d;
				else if('0'<=val && val <='9') ++n;
				else if(' '==val) ++z;
			}
			System.out.println(s +" "+d +" "+n+" "+z);
		}
	}

}

 

 

 


 

 

CPDM

 

choppadontbiteme.tistory.com

 

반응형