관리 메뉴

드럼치는 프로그래머

[JAVA] 대소문자 구분 없이 문자열 바꾸기/치환 본문

★─Programing/☆─JAVA

[JAVA] 대소문자 구분 없이 문자열 바꾸기/치환

드럼치는한동이 2013. 5. 21. 10:44

replaceFirst() / replaceAll() 메소드(함수)로 문자열을 치환할 때, 대소문자 구분없이 바꾸려면

정규식의 앞 부분에 (?i) 라는 옵션을 넣어주면 됩니다. 물음표+소문자i(아이)입니다.

영문 알파벳 대소문자 구분없이 치환 예제


파일명: Foo.java
public class Foo {
    public static void main(String[] args) {

        String s = "Abc abC ABC abc"; // 원본 문자열
        String s2;

        System.out.println("원본: " + s);
        System.out.println(); // 줄바꿈

        s2 = s.replaceFirst("(?i)abc", "ZZZ");
        System.out.println("치환(1): " + s2);

        s2 = s.replaceAll("(?i)abc", "ZZZ");
        System.out.println("치환(2): " + s2);

    }
}

컴파일 및 실행 결과 화면:
D:\Z>javac Foo.java && java Foo
원본: Abc abC ABC abc

치환(1): ZZZ abC ABC abc
치환(2): ZZZ ZZZ ZZZ ZZZ


만약 (?i) 라는 옵션이 없다면, 원본 문자열에서, 소문자로 된 "abc" 만 "ZZZ"로 변경됩니다.

 

[출처] http://mwultong.blogspot.com/2006/12/java-replace-string-ignore-case-regex.html

Comments