백준(Backjoon) 10820, 문자열 분석

2021. 7. 7. 11:04CodingTest

문제풀이

하나의 문자열을 입력받고 Character 클래스의 isLowerCase(), isUpperCase(), isDigit(), isSpaceChar() 메서드를 활용하여 각각의 문자 종류에 따라서 카운트를 수행한다. 주의할 점은 입력부문에서 입력 개수가 주어지지 않아서 while문의 조건문을 null이 아닐때까지 입력받는 것으로 설정한다.

 

소스코드

public class Main {
	public static void solution(String str)
	{
		int[] arr;
		StringBuilder answer = new StringBuilder();
		
		arr = new int[4];
		answer = new StringBuilder();
		for(int i=0;i<str.length();i++)
		{
			
			if(Character.isLowerCase(str.charAt(i))) 
			{
				arr[0]++;
			}
			else if(Character.isUpperCase(str.charAt(i)))
			{
				arr[1]++;
			}
			else if(Character.isDigit(str.charAt(i)))
			{
				arr[2]++;
			}
			else if(Character.isSpaceChar(str.charAt(i)))
			{
				arr[3]++;
			}
		}
		for(int i=0;i<arr.length;i++)
		{
			answer.append(arr[i]+" ");
		}
		System.out.println(answer.toString().trim());
	}
	public static void main(String args[]) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		List<String> sen = new ArrayList<String>();
		
		String str = "";
		while((str=br.readLine())!=null)
		{
			solution(str);
		}
	}
}

'CodingTest' 카테고리의 다른 글

백준(Backjoon) 7568, 덩치  (0) 2021.07.12
백준(Backjoon) 1259, 팰린드롬수  (0) 2021.07.08
백준(Backjoon) 10799, 쇠막대기  (0) 2021.07.06
백준(Backjoon) 1026, 보물  (0) 2021.07.06
백준(Backjoon) 11655, ROT13  (0) 2021.07.05