Programming/Java
[Java] 문자열에서 특정 문자 삭제/변환하기 : replace(), replaceAll()
aldrn29
2023. 11. 23. 15:54
문자열에서 특정 문자를 삭제 혹은 치환하는 방법 중 replace() 함수와 replaceAll() 함수를 알아보려한다.
replace(char old, char new)
문자열 내에 대체할 문자(없다면 "" 빈 값)와 일치하는 모든 부분을 교체한다.
public class Main
{
public static void main(String[] args)
{
String str = "Hello, World..";
str = str.replace("Hello", "Hi");
System.out.println(str); // "Hi, World..
str = str.replace(".", "");
System.out.println(str); // "Hi, World"
}
}
replaceAll(char old, char new)
replace() 함수와 같이 대체할 문자를 넣어 동일하게 사용할 수 있지만, 어떤 패턴(정규식)을 넣어 사용할 수도 있다. 특정 문자를 정규식으로 인식하여 예상과 다르게 나올 수 있어서 주의해야 한다.. 그래도 정규식만 잘 사용할 수 있다면 정말 편리할 것 같다.
* replace() : 첫 번째 매개변수인 "."을 문자로 인식한다.
* replace() : 첫 번째 매개변수인 "."을 정규식으로 인식한다. ("."은 모든 문자를 의미)
public class Main
{
public static void main(String[] args)
{
String str = "Hello, World..";
str = str.replaceAll("Hello", "Hi");
System.out.println(str); // "Hi, World..
str = str.replaceAll(".", "!");
System.out.println(str); // "!!!!!!!!!!!"
}
}
String str = "Hello, World..123!!";
str = str.replaceAll("[^\\w+]", ""); // "HelloWorld123" (문자/숫자를 제외하고 제거)
str = str.replaceAll("[\\d+]", ""); // "Hello, World..!!" (숫자를 제거)
str = str.replaceAll("[^a-zA-Z]", ""); // "HelloWorld" (문자를 제외하고 제거)
str = str.replaceAll("[\\s+]", ""); // "Hello,World..123!!" (공백을 제거)