본문으로 바로가기
728x90
반응형

▷ 문제

한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.

* 입력

대소문자를 구분하지 않습니다. 또한 문자열의 길이는 100을 넘지 않습니다.

▷ 입력 예시

Computercooler

c

▷ 출력 예시

2

▷ 풀이

1. for문 사용

import java.util.Scanner;

public class Main {
    public int solution(String str, char c){
        int answer = 0;
        str = str.toUpperCase();
        c = Character.toUpperCase(c);

        for (int i = 0; i < str.length(); i++) {
            if(c == str.charAt(i)){
                answer++;
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        Main main = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        char c = kb.next().charAt(0);
        System.out.println(main.solution(str, c));
    }
}

 

2. forEach 사용

import java.util.Scanner;

public class Main {
    public int solution(String str, char c){
        int answer = 0;
        str = str.toUpperCase();
        c = Character.toUpperCase(c);

        for(char x : str.toCharArray()){
            if(x == c){
                answer++;
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        Main main = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        char c = kb.next().charAt(0);
        System.out.println(main.solution(str, c));
    }
}

▷ 핵심 키워드

1. Scanner를 char타입으로 입력받는 것

2. 대소문자를 가리지 않으므로 문자열과 문자 모두 대문자로 변환 후 비교

3. String을 char 배열형으로 만들어 주는 toCharArray()

반응형