출처
https://www.acmicpc.net/problem/10820
10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
문제
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
입력
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.
출력
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
예제

코드
간단한 소문자, 대문자, 숫자, 공백 구하기 문제
다만 입력을 얼마나 받는지 모르므로 (s = br.readLine()) != null 로 입력이 들어온 것이 null일때 끝나는 것으로 조건을 달면 된다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = "";
while ((s = br.readLine()) != null) {
int small = 0, large = 0, num = 0, space = 0;
for (int i = 0; i < s.length(); i++) {
// 소문자, 대문자, 숫자, 공백
if ('a' <= s.charAt(i) && s.charAt(i) <= 'z') {
small++;
} else if ('A' <= s.charAt(i) && s.charAt(i) <= 'Z') {
large++;
} else if ('0' <= s.charAt(i) && s.charAt(i) <= '9') {
num++;
} else if (s.charAt(i) == ' ') {
space++;
}
}
System.out.println(small + " " + large + " " + num + " " + space);
}
}
}'알고리즘 공부 > 백준' 카테고리의 다른 글
| [백준] 1874번 스택 수열 (0) | 2021.10.10 |
|---|---|
| [백준] 11656번 - 접미사 배열 (0) | 2021.10.06 |
| [백준] 10866 - 덱 (0) | 2021.10.05 |
| [백준] 1158번 - 요세푸스 문제 (0) | 2021.10.04 |
| [백준] 10845번 - 큐 (0) | 2021.10.04 |