SeouliteLab

[Java/자바] replace()와 replaceAll() 메서드의 차이점 본문

프로그래밍

[Java/자바] replace()와 replaceAll() 메서드의 차이점

Seoulite Lab 2024. 3. 6. 13:10

자바에서는 문자열을 변경할 때 replace()와 replaceAll() 메서드를 주로 사용합니다. 두 메서드는 비슷해 보이지만 동작 방식과 사용 방법에 있어서 차이가 있습니다. 이번에는 두 메서드의 차이점을 알아보고 각각의 사용법을 살펴보겠습니다.

replace() 메서드

String str = "Hello, World!";
String replacedStr = str.replace(",", "");
System.out.println(replacedStr);  // 출력 결과: "Hello World!"

replace() 메서드는 지정된 문자 또는 문자열을 다른 문자 또는 문자열로 대체합니다. 이때 첫 번째 인자로는 대체 대상이 되는 문자열 또는 문자를, 두 번째 인자로는 대체할 문자열을 전달합니다. 이 메서드는 정확한 문자열 매칭에 의존하며, 정규 표현식을 지원하지 않습니다.

replaceAll() 메서드

String str = "Hello, World!";
String replacedStr = str.replaceAll("[aeiou]", "");
System.out.println(replacedStr);  // 출력 결과: "Hll, Wrld!"

replaceAll() 메서드는 정규 표현식을 사용하여 문자열을 대체합니다. 이 메서드를 사용하면 지정된 패턴에 해당하는 모든 문자열이 대체됩니다. 따라서 정규 표현식을 이용해 복잡한 패턴을 대체할 때 유용합니다.

예제 3: replace() vs replaceAll()

String str = "Hello, World!";
String replacedStr = str.replace("o", "");
System.out.println(replacedStr);  // 출력 결과: "Hell, Wrld!"

String replacedAllStr = str.replaceAll("o", "");
System.out.println(replacedAllStr);  // 출력 결과: "Hell, Wrld!"

두 메서드의 동작이 유사한 경우도 있습니다. 위 예제에서는 문자 'o'를 제거하는 동일한 패턴을 replace()와 replaceAll()로 적용했을 때 결과가 동일합니다.