Java 에서 부분 문자열 대체

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 프로그래밍 언어를 사용하여 String 내의 부분 문자열을 어떻게 대체하는지 배우겠습니다. 단일/다중 문자 또는 부분 문자열을 대체하기 위해 Java 에서 사용할 수 있는 다양한 메서드를 사용할 것입니다. 마지막으로, 이러한 메서드를 Java 코드에서 어떻게 구현하는지에 대한 명확한 이해를 갖게 될 것입니다.

Java 파일 생성

코드를 작성하고 실행하기 위해 Java 파일을 생성해 보겠습니다. 터미널을 열고 프로젝트 디렉토리로 이동합니다. 다음 명령을 사용하여 SubstringReplace.java라는 새 파일을 생성합니다.

touch SubstringReplace.java

선호하는 텍스트 편집기에서 파일을 엽니다.

단일 문자 대체

replace() 메서드를 사용하여 문자열에서 단일 문자의 발생을 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "hello world!";
        System.out.println("Original String: " + originalString);
        // Replacing a single character
        String newString = originalString.replace('l', 'L');
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 원래 문자열에서 소문자 l 문자를 대문자 L 문자로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 다음 명령을 사용하십시오.

javac SubstringReplace.java
java SubstringReplace

다음과 같은 출력이 생성되어야 합니다.

Original String: hello world!
New String: heLLo worLd!

부분 문자열 대체

replace() 메서드를 사용하여 부분 문자열의 모든 발생을 새 부분 문자열로 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing a substring
        String newString = originalString.replace("the", "a");
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 부분 문자열 "the"의 모든 발생을 부분 문자열 "a"로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

부분 문자열 첫 번째 일치 항목 대체

replaceFirst() 메서드를 사용하여 부분 문자열의 첫 번째 발생을 새 부분 문자열로 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing the first occurrence of a substring
        String newString = originalString.replaceFirst("the", "a");
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 부분 문자열 "the"의 첫 번째 발생을 부분 문자열 "a"로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

정규 표현식으로 문자 대체

정규 표현식 (regular expression) 을 사용하여 패턴으로 문자를 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing characters with regular expressions
        String newString = originalString.replaceAll("[aeiou]", "");
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 정규 표현식을 사용하여 원래 문자열에서 모든 모음을 제거하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

정규 표현식을 사용한 여러 문자 대체

정규 표현식 (regular expression) 을 사용하여 여러 문자를 패턴으로 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing multiple characters with regular expressions
        String newString = originalString.replaceAll("[aeiouAEIOU]", "");
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 정규 표현식을 사용하여 원래 문자열에서 모든 모음 (소문자 및 대문자) 을 제거하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

정규 표현식을 이용한 부분 문자열 대체

정규 표현식 (regular expression) 을 사용하여 부분 문자열을 패턴으로 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing substrings with regular expressions
        String newString = originalString.replaceAll("\\w+", "a");
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 정규 표현식을 사용하여 원래 문자열의 모든 단어를 문자 a로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: a a a a a a a a a

정규 표현식을 사용한 부분 문자열의 다중 발생 대체

정규 표현식 (regular expression) 을 사용하여 부분 문자열의 모든 발생을 패턴으로 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing all occurrences of a substring with regular expressions
        String newString = originalString.replaceAll("the", "a");
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 정규 표현식을 사용하여 부분 문자열 "the"의 모든 발생을 문자 a로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

StringBuilder 를 사용하여 부분 문자열 대체하기

StringBuilder 클래스를 사용하여 부분 문자열을 보다 효율적인 방식으로 대체할 수 있습니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Using StringBuilder to replace substrings
        StringBuilder stringBuilder = new StringBuilder(originalString);
        stringBuilder.replace(0, 3, "a");
        String newString = stringBuilder.toString();
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 StringBuilder 클래스를 사용하여 문자열의 처음 3 글자를 문자 a로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

StringBuffer 를 사용하여 부분 문자열 대체하기

StringBuilder와 유사하게, StringBuffer 클래스를 사용하여 부분 문자열을 보다 효율적인 방식으로 대체할 수 있습니다. 유일한 차이점은 StringBuffer가 스레드 안전 (thread-safe) 하다는 것입니다. 다음은 예시입니다.

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Using StringBuffer to replace substrings
        StringBuffer stringBuffer = new StringBuffer(originalString);
        stringBuffer.replace(0, 3, "a");
        String newString = stringBuffer.toString();
        System.out.println("New String: " + newString);
    }
}

위의 예제에서는 StringBuffer 클래스를 사용하여 문자열의 처음 3 글자를 문자 a로 대체하고 있습니다.

코드를 컴파일하고 실행하려면 2 단계와 동일한 명령을 사용하십시오.

다음과 같은 출력이 생성되어야 합니다.

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

요약

이 랩에서는 Java 프로그래밍 언어를 사용하여 String 내의 부분 문자열을 대체하는 방법을 배웠습니다. 단일/다중 문자 또는 부분 문자열을 대체하기 위해 Java 에서 사용할 수 있는 여러 가지 메서드를 논의했습니다. 또한 정규 표현식 (regular expressions) 과 StringBuilder/StringBuffer 클래스를 사용하여 보다 효율적인 부분 문자열 대체를 수행하는 방법도 배웠습니다. 이 지식을 활용하여 Java 프로그램에서 문자열을 쉽게 조작할 수 있습니다.