관리 메뉴

드럼치는 프로그래머

[JAVA] 대소문자 구분 없이 문자열 바꾸기/치환; Replace String Ignore Case Regex 본문

★─Programing/☆─JAVA

[JAVA] 대소문자 구분 없이 문자열 바꾸기/치환; Replace String Ignore Case Regex

드럼치는한동이 2016. 7. 19. 09:36

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