한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.
대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.
첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
첫 줄에 해당 문자의 개수를 출력한다.
Newengland
n
3
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가
입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.
대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.
위에서 말한대로 문자열을 입력받는 변수, 특정 문자를 입력받는 변수를 각각 만들고 특정문자가 문자열에 몇 개 존재하는지 알아내는 메소드를 만들어 준다.
public static void main(String[] args){
// 1. 문자열을 돌면서 문자를 찾아줄 메소드를 이용하기 위해 객체 생성
Main m = new Main();
// 2. 스캐너를 이용
Scanner sc=new Scanner(System.in);
// 3. 스캐너를 통해 받은 입력을 문자열 str과 문자 t 변수에 각각 할당
String str = sc.next();
char t = sc.next().charAt(0);
System.out.println(m.solution(str,t));
}
이제 solution이란 메소드에 특정문자가 문자열에 몇 개 존재하는지 알아내는 기능을 구현해서 넣어준다.
public int solution(String str, char t) {
int answer = 0;
// 4. solution 메소드에 매개변수 str, t를 담아와서
// 대소문자 상관없다고 했으니 전부 다 대문자로 변경
str = str.toUpperCase();
t = Character.toUpperCase(t);
// 5. str의 길이만큼 for문을 돌면서 str의 각각의 문자들과
// 위에서 받아온 t를 각각 비교해서 일치할 경우 answer에 1씩 더해준다
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) == t) {
answer++;
}
}
return answer;
}
위는 for문으로 돌려서 일치하는 문자를 찾았는데, 아래와 같이 foreach로도 가능하다.
for(char x: str.toCharArray()) {
if(x == t) answer ++;
}
newengland
n
3
newengland에 들어있는 n의 갯수는 3개