문자열에서 특수 문자 제거하는 방법
Java에서 언어(알파벳, 한글 등) 및 숫자를 제외한 나머지 문자는 특수 문자로 간주됩니다.
!, @, #, $, %와 같은 문자를 특수 문자라고 합니다.
이번 포스팅은 문자열에서 특수 문자를 제거하는 몇 가지 방법들을 소개합니다.
ReplaceAll 메서드
모든 특수 문자를 제거하기 위해서는 String 클래스에서 제공하는 replaceAll() 메서드를 사용할 수 있습니다.
replaceAll() 메서드는 특정 문자열을 다른 문자열로 변경된 새로운 문자열을 반환합니다.
public String replaceAll(String regex, String replacement)
replaceAll() 메서드의 첫 번째 매개변수는 정규식이며, 두 번째 매개변수는 대체할 문자열입니다.
다음 예제는 문자열에 존재하는 특수 문자인 @, $, ^를 띄어쓰기로 변경합니다.
public static void main(String args[]) {
String StringValue = "이@문자열에$특수@문자가^있다.";
String newStringValue = StringValue.replaceAll("[@$^]", " ");
System.out.println("[기존 문자열: StringValue]");
System.out.println(StringValue);
System.out.println("\n[변경된 문자열: newStringValue]");
System.out.println(newStringValue);
}
[실행 결과]
[기존 문자열: StringValue]
이@문자열에$특수@문자가^있다.
[변경된 문자열: newStringValue]
이 문자열에 특수 문자가 있다.
예제 1. 숫자 및 문자를 제외한 모든 특수 문자 제거
숫자 및 문자(영어, 한글)를 제외한 모든 특수 문자를 변경하고 싶은 경우 ReplaceAll() 메서드의 첫 번째 매개변수에 다음 정규식을 전달합니다.
str.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]", "");
다음 예제는 숫자 및 문자를 제외한 모든 특수 문자를 띄어쓰기로 변경합니다.
public static void main(String args[]) {
String StringValue = "이@문자열에$특수@문자가^있다.";
String newStringValue = StringValue.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]", " ");
System.out.println("[기존 문자열: StringValue]");
System.out.println(StringValue);
System.out.println("\n[변경된 문자열: newStringValue]");
System.out.println(newStringValue);
}
[실행 결과]
[기존 문자열: StringValue]
이@문자열에$특수@문자가^있다.
[변경된 문자열: newStringValue]
이 문자열에 특수 문자가 있다
예제 2. 숫자 및 문자 그리고 일부 특수 문자를 제외
숫자 및 문자 그리고 일부 특수 문자를 제외하고 모든 특수 문자를 변경하고 싶을 수 있습니다.
예를 들어, 쉼표(,) 또는 마침표(.) 그리고 띄어쓰기를 제외한 모든 특수 문자를 변경하고 싶습니다.
ReplaceAll() 메서드의 첫 번째 매개변수에 다음 정규식을 전달합니다.
str.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9,. ]", "");
다음 예제는 문자열에서 숫자 및 문자, 쉼표, 마침표, 띄어쓰기를 제외한 모든 특수 문자를 빈 값으로 변경합니다.
public static void main(String args[]) {
String StringValue = "따@라#서, 어쩌구... 저쩌구...";
String newStringValue = StringValue.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9,. ]", "");
System.out.println("[기존 문자열: StringValue]");
System.out.println(StringValue);
System.out.println("\n[변경된 문자열: newStringValue]");
System.out.println(newStringValue);
}
[실행 결과]
[기존 문자열: StringValue]
따@라#서, 어쩌구... 저쩌구...
[변경된 문자열: newStringValue]
따라서, 어쩌구... 저쩌구...
'Java > 문자열' 카테고리의 다른 글
[Java]Char 배열을 문자열로 변환하는 방법 (0) | 2022.08.17 |
---|---|
[Java]특정 위치의 문자를 유니코드로 가져오는 방법 (0) | 2022.08.17 |
[Java]문자열 위치 찾는 방법 (0) | 2022.08.13 |
[Java]문자열 연결하는 방법 (0) | 2022.08.13 |
[Java]문자열 분리하는 방법 (0) | 2022.08.11 |
댓글