algorithm

문자 찾기

juuuuuuun 2024. 4. 8. 18:04

 

1. 문자 찾기
 

설명

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

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

 

입력

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

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

 

출력

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

 

예시 입력 1 

Computercooler
c

 

예시 출력 1

2

 

소스코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int count = 0;
        System.out.println("문자열을 입력하시오.");
        String str1 = sc.next();
        System.out.println("찾을 문자를 입력하시오.");
        String str2 = sc.next();
        
        //찾을 문자 value에 저장
        int value = str2.charAt(0); 
        
        //소문자이면 value에 대문자 값으로 저장시켜준다
        if (str2.charAt(0) >= 'a') {
            value = str2.charAt(0) - 32;
        }
        
        //str1 전체 돌리면서 대소문자 관계없이 value와 같으면 count 1씩 증가 시킴
        for (int i = 0; i < str1.length(); i++) { //C = 67 c=99 32차이
            if (str1.charAt(i) == value || str1.charAt(i) == value + 32) {
                count++;
            }
        }

        System.out.println(count);
    }
}

 

 

소스코드2 (toUpperCase() 사용)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int count = 0;
        System.out.println("문자열을 입력하시오.");
        String str1 = sc.next();
        System.out.println("찾을 문자를 입력하시오.");
        String str2 = sc.next();
        char c = str2.charAt(0);

        //모두 대문자로 변경
        str1 = str1.toUpperCase();
        c = Character.toUpperCase(c);

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

        System.out.println(count);

    }
}

 

toUpperCase()

 - String 타입의 경우 str.toUpperCase(); 와 같이 사용되며 모든 문자가 대문자로 변경된다.

 - char 타입의 경우 c의 char 변수가 있다고 하면 Character.toUpperCase(c) 와 같이 사용하면 된다

 - 모두 소문자로 변경하고 싶은 경우에는 toLowerCase를 사용하면 된다.

'algorithm' 카테고리의 다른 글

중복 문자 제거  (0) 2024.04.09
특정 문자 뒤집기  (0) 2024.04.09
단어 뒤집기 / ArrayList, StringBuilder  (1) 2024.04.09
문장 속 단어  (0) 2024.04.08
대소문자 변환  (0) 2024.04.08