프로그래밍/Java

[java/자바] replaceAll(), trim() 공백 제거 안될 때

미냐님 2024. 1. 19. 11:34
728x90

 

replaceAll (" ", "" )이나, trim() 으로 간단 하게 공백을 제거하려 했지만 제거가 안되는 경우가 있다.

 

이유를 찾아보니.. 상기 코드로 삭제되지 않는 이유는..

 

"CJK 문자셋에서 'IDEOGRAPHIC SPACE'라고 불리는 유니코드는 \u3000이며, HTML에서는  으로 표현, 폰트가 이를 지원하지 않을 경우, 실제로는 보이지 않는 코드로만 존재하는 공백"

 

이럴 경우 다음과 같은 정규식을 통해 제거가 가능.

// 모든 공백 제거
String str =originalString.replaceAll("\\p{Z}", "");

// 앞뒤 공백만 제거(trim)
String str =originalString.replaceAll("(^\\p{Z}+|\\p{Z}+$)", "");

 

 

참고 : https://www.yunsobi.com/blog/596

728x90