문제
10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
알고리즘
없음
풀이
while((input = br.readLine()) != null && !input.isEmpty())
입력의 끝이 주어져있지 않기 때문에 위 문장처럼 eof 처리를 하고
입력으로 들어온 각 문자열을 탐색하며
Character 클래스의 isLowerCase(), isUpperCase(), isDigit(), isSpaceChar() 메소드를 통해 소문자, 대문자, 숫자, 공백의 개수를 세고 출력한다.
* 문자열의 수 N의 상한이 주어져있지 않기 때문에 StringBuilder를 이용해 출력 시간을 단축한다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String input = "";
while((input = br.readLine()) != null && !input.isEmpty()) {
int lower = 0;
int upper = 0;
int digit = 0;
int space = 0;
for(int i=0; i<input.length(); i++) {
char c = input.charAt(i);
if(Character.isLowerCase(c)) lower++;
else if (Character.isUpperCase(c)) upper++;
else if(Character.isDigit(c)) digit++;
else if(Character.isSpaceChar(c)) space++;
}
sb.append(lower).append(" ").append(upper).append(" ")
.append(digit).append(" ").append(space).append("\n");
}
System.out.println(sb);
}
}
'Algorithm > 백준(BOJ)' 카테고리의 다른 글
[백준] 2210. 숫자판 점프 (Java) (0) | 2022.11.27 |
---|---|
[백준] 11655. ROT13 (Java) (0) | 2022.11.20 |
[백준] 16937. 두 스티커 (Java) (1) | 2022.11.18 |
[백준] 2422. 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (Java) (0) | 2022.11.18 |
[백준] 16922. 로마 숫자 만들기 (Java) (0) | 2022.11.16 |