알고리즘 - 문자열

2024. 5. 20. 14:07JAVA

반응형

문자열에서 특정 문자의 갯수를 구하는 간단한 알고리즘을 구현 해보겠다.

package com.example.testproject;
import java.util.Scanner;

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(str.charAt(i) == c){
                answer++;
            }
        }

       /* for(char x : str.toCharArray()){
            if(x == c){
                answer++;
            }
        } */
        
        return answer;
    }
    public static void main(String[] args){
        Main t = new Main(); //solution 함수를 static으로 선언한다면 굳이 인스턴스 만들 필요 없음
        Scanner sc = new Scanner(System.in);
        String str = sc.next(); //문자열을 읽어들임.
        //next하면 문자열을 가지고 오는건데 char는 한글자니까 charAt(0)으로 첫번째 인덱스 문자 가져옴
        char c = sc.next().charAt(0);
        System.out.print(t.solution(str, c));

    }
}

 

for문은 둘 중 아무거나 사용해도된다. 주석으로 되어있는 for문은 향상된 for문이다.

 

결과는 아래와 같다. 

입출력 결과

 

※ 정리 ※

  • String, Char 의 차이
    → String은 문자열이고 Char은 문자(한글자)이다.
  • static 메소드는 인스턴스 생성이 불가하다.
  • Scanner의 next() 함수는 문자열 전체를 가져온다.
  • 문자열에서 한글자만 가져와서 char형으로 선언하려면 charAt() 함수를 써서 0번째 인덱스의 문자를 가져온다.
  • 문자열을 한글자씩 쪼개서 배열로 담는 함수는 toCharArray() 이다.
  • Character 타입을 대소문자로 변경하는 함수는 Charater.toUpperCase(문자) / Charater.toLowerCase(문자) 이다.
반응형

'JAVA' 카테고리의 다른 글

indexOf(), substring() 알고리즘  (0) 2024.05.20
대소문자 변환 알고리즘  (0) 2024.05.20
자바의 Stream Method  (0) 2023.09.12
getOrDefault 함수  (0) 2023.09.11