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

Java에서 문자열의 특정 인덱스 문자를 교체하는 방법

개요

이 글에서는 Java에서 문자열(String)의 특정 인덱스에 위치한 문자를 다른 문자로 교체하는 방법을 알아봅니다. 문자열은 하나 이상의 문자를 포함하며 큰따옴표(" ")로 감싸서 표현하는 데이터 타입입니다.

참고로 Java의 String은 불변(immutable) 객체이기 때문에 특정 위치의 문자를 직접 수정할 수 없습니다. 따라서 substring() 메서드를 활용해 기존 문자열을 잘라낸 뒤 새 문자를 끼워 넣어 새로운 문자열을 만드는 방식으로 교체 작업을 수행합니다.

문제 이해하기

다음은 실제 동작 과정을 보여주는 예시입니다.

입력 값

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

기대 출력 결과

수정된 문자열: Java P%ogramming

위 예시처럼 인덱스 6에 해당하는 'r' 문자가 '%'로 교체되는 것을 확인할 수 있습니다.

알고리즘

1단계 - 시작
2단계 - 문자열 변수 input_string, 정수형 변수 index, 문자형 변수 character를 선언
3단계 - 각 변수에 값을 할당
4단계 - substring() 메서드로 인덱스 0부터 index 직전까지의 부분 문자열을 추출하고, 교체할 문자를 이어 붙인 뒤, 다시 (index + 1)부터 끝까지의 부분 문자열과 연결하여 새 문자열 생성
5단계 - 결과 출력
6단계 - 종료

예제 1: main 메서드에서 한 번에 처리하기

첫 번째 방법은 모든 연산을 'main' 메서드 안에 함께 작성하는 방식입니다.

public class StringModify {
    public static void main(String args[]) {
        String input_string = "Java Programming";
        int index = 6;
        char character = '%';
        System.out.println("The string is defined as: " + input_string);
        input_string = input_string.substring(0, index) + character + input_string.substring(index + 1);
        System.out.println("\nThe modified string is: " + input_string);
    }
}

실행 결과

The string is defined as: Java Programming

The modified string is: Java P%ogramming

예제 2: 별도의 메서드로 분리하기 (객체 지향 방식)

두 번째 방법은 교체 로직을 별도의 메서드로 캡슐화하여 객체 지향 프로그래밍 스타일로 작성하는 것입니다. 코드의 재사용성과 가독성이 더욱 향상된다는 장점이 있습니다.

public class StringModify {
    static void swap(String input_string, int index, char character){
        input_string = input_string.substring(0, index) + character + input_string.substring(index + 1);
        System.out.println("\nThe modified string is: " + input_string);
    }
    public static void main(String args[]) {
        String input_string = "Java Programming";
        int index = 6;
        char character = '%';
        System.out.println("The string is defined as: " + input_string);
        swap(input_string, index, character);
    }
}

실행 결과

The string is defined as: Java Programming

The modified string is: Java P%ogramming

핵심 정리

Java에서 문자열의 특정 인덱스 문자를 교체하려면 substring() 메서드로 교체 대상 앞부분과 뒷부분을 각각 추출한 후, 그 사이에 새로운 문자를 삽입하면 됩니다. String이 불변 객체이므로 원본 문자열은 변경되지 않고 항상 새로운 문자열이 생성된다는 점을 기억하시기 바랍니다.