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

Java에서 문자열의 특정 문자 추출하기 – charAt() 메서드 활용 가이드


이 글에서는 주어진 문자열(String)에서 특정 위치의 문자(char)를 가져오는 방법을 알아봅니다. 자바에서 char는 알파벳, 숫자, 특수 문자 등 단일 문자를 저장하는 데이터 타입이며, String은 하나 이상의 문자로 구성되어 큰따옴표(" ")로 감싸 표현하는 데이터 타입입니다.

문자열에서 원하는 위치의 문자를 꺼낼 때는 charAt() 메서드를 사용합니다. 아래 예시를 통해 자세히 살펴보겠습니다.

입력 · 출력 예시

입력 문자열: Java Programming
인덱스: 11

위 입력에 대한 기대 결과는 다음과 같습니다.

결과: m

※ 자바에서 문자열 인덱스는 0부터 시작합니다. 따라서 인덱스 11은 열한 번째 문자가 아니라 열두 번째 문자를 가리킵니다.

알고리즘

  1. 시작 — 프로그램을 시작합니다.
  2. 문자열 변수 input_string과 char 변수 resultant_character를 선언합니다.
  3. 각 변수에 값을 정의(초기화)합니다.
  4. string.charAt() 메서드를 호출해 지정된 위치의 문자를 가져와 resultant_character에 저장합니다.
  5. 결과를 화면에 출력합니다.
  6. 종료

예제 1 — main 메서드에서 모든 로직 처리

아래 예제는 모든 연산을 main 메서드 안에서 한 번에 처리하는 가장 기본적인 방식입니다.

public class CharacterAndString {
   public static void main(String[] args) {
      String string = "Java Programming";
      System.out.println("정의된 문자열: " + string);
      int index = 11;
      char resultantCharacter = string.charAt(index);
      System.out.println("\n문자열 \"" + string + "\"에서 인덱스 " + index + " 위치의 문자: " + resultantCharacter);
   }
}

실행 결과

정의된 문자열: Java Programming

문자열 "Java Programming"에서 인덱스 11 위치의 문자: m

예제 2 — 객체 지향 방식으로 메서드 분리

아래 예제는 문자 추출 로직을 별도의 메서드로 캡슐화하여 객체 지향 프로그래밍(OOP) 스타일로 작성한 것입니다. 재사용성과 유지보수성이 더 뛰어난 구조입니다.

public class CharacterAndString {
   public static char getCharacter(String string, int index) {
      return string.charAt(index);
   }
   public static void main(String[] args) {
      String string = "Java Programming";
      System.out.println("정의된 문자열: " + string);
      int index = 11;
      char resultantCharacter = getCharacter(string, index);
      System.out.println("\n문자열 \"" + string + "\"에서 인덱스 " + index + " 위치의 문자: " + resultantCharacter);
   }
}

실행 결과

정의된 문자열: Java Programming

문자열 "Java Programming"에서 인덱스 11 위치의 문자: m

참고: 유효하지 않은 인덱스 처리

charAt()에 문자열 길이 이상의 값이나 음수를 전달하면 StringIndexOutOfBoundsException이 발생합니다. 안전한 코드를 위해 아래와 같이 인덱스 범위를 먼저 검사하는 것이 좋습니다.

if (index >= 0 && index < string.length()) {
   char ch = string.charAt(index);
} else {
   System.out.println("유효하지 않은 인덱스입니다.");
}