Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 문자열에서 특정 문자 찾기: indexOf()와 toCharArray() 완벽 가이드

Java 프로그래밍을 하다 보면 주어진 문자열에 특정 문자가 포함되어 있는지 확인해야 하는 경우가 자주 발생합니다. 이 글에서는 indexOf() 메서드와 toCharArray() 메서드 두 가지 방법을 활용하여 문자열 내에서 원하는 문자를 찾는 방법을 알아보겠습니다.

1. indexOf() 메서드 사용하기

String 클래스의 indexOf() 메서드를 사용하면 문자열에서 특정 문자의 위치를 손쉽게 검색할 수 있습니다. 이 메서드는 지정한 문자가 문자열 내에 존재하면 해당 위치의 인덱스(정수)를 반환하고, 존재하지 않으면 -1을 반환합니다.

따라서 문자열에 특정 문자가 포함되어 있는지 확인하는 절차는 다음과 같습니다.

  • 문자열 객체에서 indexOf() 메서드를 호출하면서 확인하려는 문자를 매개변수로 전달합니다.
  • 반환값이 -1이 아니면 해당 문자열에 지정한 문자가 포함되어 있다는 의미입니다.

예제 코드

import java.util.Scanner;
public class IndexOfExample {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("문자열을 입력하세요: ");
        String str = sc.next();
        System.out.println("찾을 문자를 입력하세요: ");
        char ch = sc.next().toCharArray()[0];
        // indexOf() 메서드 호출
        int i = str.indexOf(ch);
        if(i != -1) {
            System.out.println("문자열에 해당 문자가 포함되어 있습니다.");
        } else {
            System.out.println("문자열에 해당 문자가 포함되어 있지 않습니다.");
        }
    }
}

실행 결과

문자열을 입력하세요:
Tutorialspoint
찾을 문자를 입력하세요:
t
문자열에 해당 문자가 포함되어 있습니다.

이 방법은 코드가 간결하고 성능도 우수하기 때문에, 단순히 문자 포함 여부만 확인할 때 가장 널리 사용됩니다.

2. toCharArray() 메서드 사용하기

String 클래스의 toCharArray() 메서드는 주어진 문자열을 문자(char) 배열로 변환하여 반환합니다. 이 배열을 순회하면서 각 문자를 직접 비교하는 방식으로 원하는 문자를 찾을 수 있습니다.

확인 절차는 다음과 같습니다.

  • 문자열을 toCharArray() 메서드로 문자 배열로 변환합니다.
  • 배열의 각 문자를 반복문으로 순회하며 찾으려는 문자와 비교합니다.
  • 일치하는 문자가 있으면 해당 문자열에 원하는 문자가 포함된 것입니다.

예제 코드

import java.util.Scanner;
public class FindingCharacter {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("문자열을 입력하세요: ");
        String str = sc.next();
        System.out.println("찾을 문자를 입력하세요: ");
        char ch = sc.next().toCharArray()[0];
        // 문자열을 char 배열로 변환
        char charArray[] = str.toCharArray();
        boolean flag = false;
        for(int i = 0; i < charArray.length; i++) {
            if(charArray[i] == ch) {
                flag = true;
                break;
            }
        }
        if(flag) {
            System.out.println("문자열에 해당 문자가 포함되어 있습니다.");
        } else {
            System.out.println("문자열에 해당 문자가 포함되어 있지 않습니다.");
        }
    }
}

실행 결과

문자열을 입력하세요:
tutorialspoint
찾을 문자를 입력하세요:
T
문자열에 해당 문자가 포함되어 있습니다.

두 방법의 비교 및 정리

구분indexOf() 메서드toCharArray() 메서드
코드 간결성매우 간결반복문 작성 필요
추가 정보문자의 위치(인덱스)까지 반환포함 여부만 확인 가능
활용 범위단순 검색에 적합복잡한 문자 단위 처리에 유리

단순히 문자 포함 여부만 확인한다면 indexOf() 메서드가 가장 효율적이며, 문자의 위치 정보가 필요하거나 각 문자에 대한 추가 로직을 수행해야 한다면 toCharArray() 메서드를 활용하는 것이 좋습니다. 상황에 맞는 적절한 방법을 선택하여 사용하시기 바랍니다.