JAVA 문자열 치환 replace 사용 방법

문자열 안에 특정 문자를 원하는 문자로 변경하고 싶은 경우가 있습니다.

문자를 변경하고 싶은 경우에는 무자열 치환 함수인 replace, replaceAll 또는 replaceFirst를 사용할 수 있습니다.

  • replace – 지정 문자열을 원하는 문자열로 치환.
  • replaceAll – 정규식을 사용해 지정 문자열을 원하는 문자열로 치환.
  • replaceFirst – 첫 번째로 일치한 문자열을 원하는 문자열로 치환

 

replace

지정한 문자열을 원하는 문자열로 변경하고 싶을 때 replace 함수를 사용합니다.

작성 방법을 먼저 보겠습니다.

대상문자열.replace(지정 문자열, 치환 문자열)

 

replace함수는 대상 문자열에서 지정한 문자열과 일치하는 문자열을 치환 문자열로 변경합니다.

사용 방법을 보겠습니다.

public class Main {
 
	public static void main(String[] args) {
		String fruits = "apple, orange, melon, apple";
		System.out.println(fruits.replace("apple", "banana"));
	}
}

 

결과

banana, orange, melon, banana

 

대상 문자열인 변수 fruits에서 apple 이라는 문자열을 찾아 banana로 치환했습니다.

결과에서 볼 수 있듯이 일치하는 모든 문자열을 치환합니다.

 

replaceAll

이번에는 replaceAll 함수를 사용해 문자열을 치환하는 방법을 알아보겠습니다.

replaceAll 작성 방법을 먼저 보겠습니다.

대상문자열.replaceAll(지정 문자열, 치환 문자열)

 

replaceAll함수는 대상 문자열에서 지정한 문자열과 일치하는 문자열을 치환 문자열로 변경합니다.

샘플을 보면서 사용 방법을 확인해 보겠습니다.

public class Main {
 
	public static void main(String[] args) {
		String fruits = "apple, orange, melon, apple";
		System.out.println(fruits.replaceAll("apple", "banana"));
	}
}

 

결과

banana, orange, melon, banana

 

replaceAll함수를 사용해 대상 문자열인 변수 fruits에서 apple 이라는 문자열을 찾아 banana로 치환했습니다.

replaceAll도 일치하는 모든 문자열을 치환합니다.

replaceAll 함수의 작성 방법과 결과를 보면 replace 함수와 차이가 없어 보입니다.

하지만 차이가 있습니다.

어떠한 차이가 있는지 알아보겠습니다.

replaceAll 함수에는 지정 문자열에 정규식을 지정할 수 있습니다.

정규식에 대한 간단한 설명은 아래를 참조해 주세요

 

replaceAll에는 정규식을 작성할 수 있기 때문에 문자열을 검색할 수 있는 범위가 넓어집니다.

예를 들어 문자열에 포함되어 있는 숫자를 찾아 삭제하는 방법을 보겠습니다.

public class Main {
 
	public static void main(String[] args) {
		String fruits = "app1le, 2o3r4a5n6g7e8, 11melon22, apple";
		System.out.println(fruits.replaceAll("[0-9]", ""));
	}
}

 

결과

apple, orange, melon, apple

 

지정 문자열에는 숫자 범위를 의미하는 정규식 [0-9]를 지정했습니다.

치환하고 싶은 문자열에는 아무것도 지정하지 않았기 때문에 숫자를 찾으면 지우게 됩니다.

결과를 보면 변수 fruits에 있는 숫자를 모두 삭제했습니다.

이렇게 replaceAll에는 정규식을 지정할 수 있기 때문에 복잡한 조건을 가진 치환 처리도 할 수 있습니다.

 

replaceFirst

마지막으로 replaceFirst 함수에 대해 알아보겠습니다.

위에서 살펴본 replacereplaceAll 함수는 일치하는 모든 문자열을 치환했습니다.

replaceFirst 함수는 일치하는 문자열중 첫 번째로 찾은 문자열만 치환을 합니다.

작성 방법을 살펴보겠습니다.

대상문자열.replaceFirst(지정 문자열, 치환 문자열)

 

샘플을 보면서 사용 방법을 알아보겠습니다.

public class Main {
 
	public static void main(String[] args) {
		String fruits = "apple, orange, melon, apple";
		System.out.println(fruits.replaceFirst("apple", "banana"));
	}
}

 

결과

banana, orange, melon, apple

 

실행 결과를 보면 지정한 문자열인 apple이 banana로 치환되었습니다.

하지만 replace와 replaceAll 함수와는 다르게 첫 번째로 일치한 문자열만 치환된 것을 알 수 있습니다.

문자열을 치환하는 함수인 replace, replaceAll, replaceFirst에 대해 알아봤습니다.

원하는 처리에 맞게 함수를 주의해서 사용해야 합니다.

댓글