JAVA

[JAVA] - 문자열 치환 메서드 (replace, replaceAll, replaceFirst)

nam_ji 2024. 7. 18. 16:00

자바 문자열 치환 메서드

1. replace

  • replace는 선택한 문자열을 변경할 문자열로 바꿔줍니다. 단, 하나의 문자열만 바꿀 수 있습니다.
  • 문자열.replace("선택 문자열", "병경 문자열");
package stringClass;

public class ReplaceExample {
  public static void main(String[] args) {
    System.out.println("\n------------------------Replace 메서드------------------------");
    ReplaceEx replaceEx = new ReplaceEx();
    replaceEx.replaceEx();
  }
}

class ReplaceEx {
  public void replaceEx() {
    String replaceTest = "!자바, 문자열, 치환, 테스트!";
    System.out.println("원래 문자열 : " + replaceTest);

    System.out.println(",(쉼표)를 느낌표로 치환");
    System.out.println(replaceTest.replace(",", "!"));
  }
}

/*
출력

------------------------Replace 메서드------------------------
원래 문자열 : !자바, 문자열, 치환, 테스트!
,(쉼표)를 느낌표로 치환
!자바! 문자열! 치환! 테스트!
*/

2. replaceAll

  • replaceAll은 정규표현식을 사용하여 원하는 다양한 문자열을 변경할 수 있습니다.
    (정규표현식이 아니어도 치환은 가능합니다. 단, 떨어져 있는 문자열은 치환할 수 없습니다.)
  • replaceAll은 정규식을 사용하기 때문에 선택할 문자열이 .(마침표라면) 모든 문자열이 변경되게 됩니다.
    (정규표현식에서 .(마침표)는 모두를 뜻하기 때문입니다.)
    그렇기 때문에 replace와 replaceAll을 적절하게 잘 사용해야 합니다.
  • 문자열.replaceAll("정규표현식", "병경 문자열");
package stringClass;

public class ReplaceExample {
  public static void main(String[] args) {
    System.out.println("\n------------------------ReplaceAll 메서드------------------------");
    ReplaceAllEx replaceAllEx = new ReplaceAllEx();
    replaceAllEx.replaceAllEx();
  }
}

class ReplaceAllEx {
  public void replaceAllEx() {
    String replaceAllTest = "!자바, 문자열, 치환, 테스트!";
    System.out.println("원래 문자열 : " + replaceAllTest);

    System.out.println(",(쉼표)와 느낌표를 물음표로 치환");
    System.out.println(replaceAllTest.replaceAll("[,!]", "?"));
  }
}

/*
출력

------------------------ReplaceAll 메서드------------------------
원래 문자열 : !자바, 문자열, 치환, 테스트!
,(쉼표)와 느낌표를 물음표로 치환
?자바? 문자열? 치환? 테스트?
*/

3. replaceFirst

  • 가장 먼저 나온 선택한 문자열을 병경할 문자열로 치환해줍니다.
  • 문자열.replaceFirst("선택 문자열", "병경 문자열");
package stringClass;

public class ReplaceExample {
    System.out.println("\n------------------------ReplaceFirst 메서드------------------------");
    ReplaceFirstEx replaceFirstEx = new ReplaceFirstEx();
    replaceFirstEx.replaceFirstEx();
  }
}

class ReplaceFirstEx {
  public void replaceFirstEx() {
    String replaceFirstTest = "!자바, 문자열, 치환, 테스트!";
    System.out.println("원래 문자열 : " + replaceFirstTest);

    System.out.println("정규 표현식 중, 처음 나오는 ,(쉼표)나 느낌표를 물음표로 치환");
    System.out.println(replaceFirstTest.replaceFirst(",", "?"));
  }
}

/*
출력

------------------------ReplaceFirst 메서드------------------------
원래 문자열 : !자바, 문자열, 치환, 테스트!
정규 표현식 중, 처음 나오는 ,(쉼표)나 느낌표를 물음표로 치환
!자바? 문자열, 치환, 테스트!
*/

전체 코드

더보기
package stringClass;

public class ReplaceExample {
  public static void main(String[] args) {
    System.out.println("\n------------------------Replace 메서드------------------------");
    ReplaceEx replaceEx = new ReplaceEx();
    replaceEx.replaceEx();

    System.out.println("\n------------------------ReplaceAll 메서드------------------------");
    ReplaceAllEx replaceAllEx = new ReplaceAllEx();
    replaceAllEx.replaceAllEx();

    System.out.println("\n------------------------ReplaceFirst 메서드------------------------");
    ReplaceFirstEx replaceFirstEx = new ReplaceFirstEx();
    replaceFirstEx.replaceFirstEx();
  }
}

class ReplaceEx {
  public void replaceEx() {
    String replaceTest = "!자바, 문자열, 치환, 테스트!";
    System.out.println("원래 문자열 : " + replaceTest);

    System.out.println(",(쉼표)를 느낌표로 치환");
    System.out.println(replaceTest.replace(",", "!"));
  }
}

class ReplaceAllEx {
  public void replaceAllEx() {
    String replaceAllTest = "!자바, 문자열, 치환, 테스트!";
    System.out.println("원래 문자열 : " + replaceAllTest);

    System.out.println(",(쉼표)와 느낌표를 물음표로 치환");
    System.out.println(replaceAllTest.replaceAll("[,!]", "?"));
  }
}

class ReplaceFirstEx {
  public void replaceFirstEx() {
    String replaceFirstTest = "!자바, 문자열, 치환, 테스트!";
    System.out.println("원래 문자열 : " + replaceFirstTest);

    System.out.println("정규 표현식 중, 처음 나오는 ,(쉼표)나 느낌표를 물음표로 치환");
    System.out.println(replaceFirstTest.replaceFirst(",", "?"));
  }
}

/*
출력

------------------------Replace 메서드------------------------
원래 문자열 : !자바, 문자열, 치환, 테스트!
,(쉼표)를 느낌표로 치환
!자바! 문자열! 치환! 테스트!

------------------------ReplaceAll 메서드------------------------
원래 문자열 : !자바, 문자열, 치환, 테스트!
,(쉼표)와 느낌표를 물음표로 치환
?자바? 문자열? 치환? 테스트?

------------------------ReplaceFirst 메서드------------------------
원래 문자열 : !자바, 문자열, 치환, 테스트!
정규 표현식 중, 처음 나오는 ,(쉼표)나 느낌표를 물음표로 치환
!자바? 문자열, 치환, 테스트!
*/