목차
문제
- 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.
- 대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.
입력
- 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.
- 문자열은 영어 알파벳으로만 구성되어 있습니다.
출력
- 첫 줄에 해당 문자의 개수를 출력한다.
풀이방식 설계
- 입력받은 문자열을 하나씩 쪼갠다.
- 문자열과 쪼갠 문자들을 모두 영어 알파벳 대문자로 변형한다.
- 쪼갠 문자들을 입력받은 문자열과 하나씩 비교해서 동일하면 결과값을 카운트한다.
풀이과정
- 문자열을 입력받은 후 그 중 0번째 문자를 따로 저장한다.
- charAt() : String 타입의 데이터(문자열)에서 특정 문자를 char 타입으로 변환할 때 사용한다.
- 입력받은 문자열
str
과 0번째 문자인a
를 모두 대문자로 변환한다.
- toUpperCase() : 대상 문자열을 모두 대문자로 변환한다.
- 향상된 for문을 통해 str의 문자 하나하나와 비교하여
c
와 동일하면 result 변수에 1씩 더한다.
- str.toCharArray() : str에 입력된 문자열을 문자 하나씩 분리해서 문자 배열을 생성함
- 결과를 출력한다.
답안소스
import java.util.Scanner;
public class FindString {
public int countString(String str, char c) {
int result = 0;
str = str.toUpperCase();
c = Character.toUpperCase(c);
for(char x : str.toCharArray()) {
if(x == c) result++;
}
return result;
}
public static void main(String[] args) {
FindString cnt = new FindString();
Scanner sc = new Scanner(System.in);
String str = sc.next();
char c = sc.next().charAt(0);
System.out.println(cnt.countString(str, c));
}
}