자바 백준 10820번
브론즈 2
https://www.acmicpc.net/problem/10820
문제 보기
분류: 구현, 문자열
문제 풀기
입력이 없을때 까지 문자열을 input에 입력받는다. 입력받은 문자열을 toCharArray()를 이용하여 각각의 문자를 array에 저장한 후 하나씩 빼내어 소문자, 대문자, 숫자 그리고 공백을 다음 메서드를 사용하여 카운트 한다.
소문자: Character.isLowerCase()
대문자: Character.isUpperCase()
숫자: Character.isDigit()
공백: Character.isWhitespace()
각각 카운트한 결과를 출력한다.
코드 보기
import java.util.Scanner;
class StringAnalyzer {
private String input;
private int lowerCaseCount;
private int upperCaseCount;
private int digitCount;
private int spaceCount;
// constuctor: 입력 문자열을 받아 필드 초기화
public StringAnalyzer(String input) {
this.input = input;
lowerCaseCount = 0;
upperCaseCount = 0;
digitCount = 0;
spaceCount = 0;
}
// 문자열을 분석하여 각 카운트 변수를 증가시킴
public void analyze() {
for (char c : input.toCharArray()) {
if (Character.isLowerCase(c)) {
lowerCaseCount++;
} else if (Character.isUpperCase(c)) {
upperCaseCount++;
} else if (Character.isDigit(c)) {
digitCount++;
} else if (Character.isWhitespace(c)) {
spaceCount++;
}
}
}
// 분석 결과를 출력
public void printAnalysis() {
System.out.println(lowerCaseCount + " " + upperCaseCount + " " + digitCount + " " + spaceCount);
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력이 없을 때까지 반복
while (sc.hasNextLine()) {
// 입력 문자열 받음
String input = sc.nextLine();
// 문자열 분석을 위한 객체 생성
StringAnalyzer analyzer = new StringAnalyzer(input);
// 문자열 분석 수행
analyzer.analyze();
// 분석 결과 출력
analyzer.printAnalysis();
}
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 13164 - 행복 유치원 (0) | 2023.08.26 |
---|---|
[Java] 백준 풀기 2522 - 별 찍기 12 (0) | 2023.08.24 |
[Java] 백준 풀기 1448 - 삼각형 만들기 (0) | 2023.08.21 |
[Java] 백준 풀기 6550 - 부분 문자열 (0) | 2023.08.18 |
[Java] 백준 풀기 1213 - 팰린드롬 만들기 (0) | 2023.08.16 |