반응형
SMALL
[JAVA] 특정 특수문자를 제외한 나머지 특수문자만 Replace 하기
특수문자 전체를 제외하는 방법은
아래처럼 "\\p{Punct}" 정규식으로 간단하게 제거를 할 수있습니다.
1. 특수문자 제거하기
// 예시
String punctStr = "a!b#c@d}!%^#"
replaceAll("\\p{Punct}", "");
// 결과 : abcd
이번에, 특정 특수문자를 제외한, 나머지의 특수문자만 제거해야되는 경우가 생겨서 아래와 같은 방법을 사용했습니다.
// 특수문자 정의 ARRAY
String[] puncts = {"!", "\"", "#", "$", "%", "&", "(", ")", "{", "}", "@", "`", "*", ":", "+",
";", "-", ".", "<", ">", ",", "^", "~", "|", "'", "[", "]"};
punctStr = "a!b@c#d^!@12&3+4"
String result = "";
String[] punctArr = ["+", "@"] // 특정 특수문자 Arr
// 특정 특수문자 제외한, 특수문자 제거
for (String item : puncts) {
if (punctStr.contains(item)) {
} else {
if (item.equals("*") || item.equals("+") || item.equals("$") || item.equals("|")) {
item = "[" + item + "]";
}
if (item.equals("(") || item.equals(")") || item.equals("{") || item.equals("}")
|| item.equals("^") || item.equals("[") || item.equals("]")) {
item = "\\" + item;
}
result = punctStr.replaceAll(item, "");
}
}
// 결과 : ab@cd12&34
특정 특수문자를 위와 같이 고정적인 방식이라면 위의 방법처럼 하지 않아도 괜찮겠지만,
동적으로 특수문자가 다른경우에, 위와 같이 각각의 특수문자를 제거해주는 방법으로 진행되었습니다.
자바에서 각 특수문자마다, 문자열 인식하게하는 문자열들이 다르기 때문에 ( \\ , [ ] , 등.. ) 위와 같이 처리하면
필요한 특수문자 외에 특수문자만 제거해줄 수 있습니다.
반응형
LIST
'Developer > JAVA' 카테고리의 다른 글
[JAVA] Colletions Sort - 리스트 정렬하기 (0) | 2020.05.25 |
---|---|
[JAVA] Spring 에러 Error creating bean with name : Unsatisfied dependency expressed through field ~ (0) | 2020.05.13 |
[JAVA] Spring 에서 python 사용하기 - jython (0) | 2020.02.24 |
[ JAVA ] 자이썬 설치하기 (0) | 2020.02.19 |
[JAVA] Random 함수 (0) | 2020.02.03 |