문제
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
입력
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.
출력
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
예제 입력 1
This is String
SPACE 1 SPACE
S a M p L e I n P u T
0L1A2S3T4L5I6N7E8
예제 출력 1
10 2 0 2
0 10 1 8
5 6 0 16
0 8 9 0
풀이 .
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
// a ~ z : 97 ~ 122
// A ~ Z : 65 ~ 90
// 0 ~ 9 : 48 ~ 57
// ' ' : 32
String str = null;
while((str = br.readLine()) != null) {
int lower = 0, upper = 0, number = 0, space = 0;
for(int i = 0; i < str.length(); i++) {
int ch = str.charAt(i);
if(97 <= ch && ch <= 122) {
lower += 1;
}else if(65 <= ch && ch <= 90) {
upper += 1;
}else if(48 <= ch && ch <= 57) {
number += 1;
}else if(ch == 32) {
space += 1;
}
}
sb.append(lower + " " + upper + " " + number + " " + space + "\n");
}
bw.write(sb.toString());
br.close();
bw.flush();
bw.close();
}
}
// a ~ z : 97 ~ 122
// A ~ Z : 65 ~ 90
// 0 ~ 9 : 48 ~ 57
// ' ' : 32
'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글
[BOJ] 11655 - ROT13 JAVA (0) | 2021.01.15 |
---|---|
[BOJ] 2743 - 단어 길이 재기 JAVA (0) | 2021.01.15 |
[BOJ] 10809 - 알파벳 찾기 JAVA (0) | 2021.01.14 |
[BOJ] 10808 - 알파벳 개수 JAVA (0) | 2021.01.14 |
[BOJ] 10866 - 덱 JAVA (0) | 2021.01.14 |