[Java 코딩테스트] 특정 문자 찾기

한대희·2024년 1월 11일
0

Java 코딩 테스트

목록 보기
2/11

문제

  • 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요. 대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.

입력

  • 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.

  • 문자열은 영어 알파벳으로만 구성되어 있습니다.

출력

  • 첫 줄에 해당 문자의 개수를 출력한다.

예시

// 아래의 2가지를 입력 받음
Computer
c

// 출력 결과
1

코드

class Main {

    public static int solution(String str, char word) {

        int answer = 0;
        // 3. 대소문자 구별을 하지 않는다고 했으므로 전부 대문자로 바꾼다.
        str = str.toUpperCase();
        word = Character.toUpperCase(word);
		
        // 4. for문을 통해 문자열 하나하나 돌면서 일치하는 문자가 있으면 answer를 증가 시킨다.,
        for (int i=0 ; i<str.length(); i++){
            if ( str.charAt(i) == word) {
                answer++;
            }
        }
        
        // 향상된 for문으로 할 수 있다. string을 향상된 for문으로 사용할 수 없기 때문에
           아래 처럼 toCharArray를 통해 String을 배열로 만들어야 한다.
        
        for ( char x : str.toCharArray() ) {
        	if ( x == word ) {
            	answer++;
            }
        }
        
        
        // 5. 마지막으로 answer를 리턴하여 카운팅된 문자의 갯수를 리턴
        return answer;

    };

    public static void main(String[] args) {
        // 1. 스캐너 객체를 생성한다.
        Scanner input = new Scanner(System.in);
        // 2. 문자열과, 문자열 하나를 콘솔창으로 부터 입력 받아 solution 메서드에 전달한다.
        String str = input.next();
        char word = input.next().charAt(0);
        System.out.println(solution(str,word));
    }
}

사용한 메서드

charAt()

// charAt()은 스트링을 인덱스로 접근하게 해준다. ( 마치 배열 처럼 )

String str = "helloWorld"

// 아래 처럼 문자열 str의 0번째 인덱스 값을 가져 올 수 있다.
char c = str.charAt(0) // h

toUpperCase()

// toUpperCase()는 문자열을 대문자로 변환하여 그 값을 리턴한다.
      
  String st = "helloWorld";

// 변환된 값을 리턴하기  때문에 따로 변수에 담지 않고 아래 처럼 바로 출력해도 결과가 나온다.   
  
  System.out.println(st.toUpperCase()); // HELLOWORLD

Character.toUpperCase()

// String이 아닌 char의 경우 Character.toUpperCase()를 사용한다.
  
  char c = 'd';
  
// 마찬가지로 변환된 값을 리턴하기 때문에 따로 변수에 담지 않고 아래 처럼 바로 출력해도 결과가 나온다.
  
  System.out.println(Character.toUpperCase(c)); // D

toCharArray()

// toCharArray()는 문자열을 배열로 바꿔 주는 역할을 한다.

String st = "helloWorld";
char[] arr = st.toCharArray();
System.out.println(arr[1]); // e출력
profile
개발 블로그

0개의 댓글