자바 백준 10820번
브론즈 2
https://www.acmicpc.net/problem/10820
10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
문제 보기

분류: 구현, 문자열
문제 풀기
입력이 없을때 까지 문자열을 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 |