1. 사용법
모든 공백 제거 - .replaceAll("\\p{Z}", "");
String yourNewString =yourString.replaceAll("\\p{Z}", "");
앞뒤 공백 제거 - .replaceAll("(^\\p{Z}+|\\p{Z}+$)", "");
String yourNewString =yourString.replaceAll("(^\\p{Z}+|\\p{Z}+$)", "");
1-1.예제
public class test {
public static void main(String[] args) {
String yourString;
String yourNewString;
yourString = "this is test run";
System.out.println(yourString);
yourNewString = yourString.replaceAll("\\p{Z}", "");
System.out.println(yourNewString);
yourString = " test";
System.out.println(yourString);
yourNewString = yourString.replaceAll("(^\\p{Z}+|\\p{Z}+$)", "");
System.out.println(yourNewString);
}
}
result:
this is test run
thisistestrun
test
test
2. 설명_비교
사실, 자바에서 공백제거를 위해 쓰이는 방법은 저위에 소개한 방법말고 더 쉬운 방법이 있다.
모든 공백 제거 - yourString.replaceAll(" ", "");
앞뒤 공백 제거 - yourString.trim();
이 방법은 String 메서드에 들어가기 때문에, 기억하기도 쉽고, 사용하기도 훨씬 쉽다.
하지만, 굳이 저 위에 있는 정규식을 이용한 공백제거를 사용하는 이유가 있다.
컴퓨터는 문자셋이 다 다르다. 쉽게 말해 너의 컴퓨터와 웹싸이트에 나오는 HTML, 그리고 네가 사용하는 자바 IDE의 문자 표시방식이 모두 다르다는 뜻이다. 이중에 "IDEOGRAPHIC SPACE"라는 문자가 있는데, 이게 출력되기전까지는 컴퓨터에서 공백으로 인식이 되지 않는다. 예를 들자만 "자공백바" 라는 문자가 컴퓨터가 인식하는 문자이고. 이를 출력하면 "자 바" 라고 출력이 되는것이다. 그때문에, replaceAll(" ", "")으로는 이를 제거할수가 없다.
3. 설명_정규표현식regular Expression
짧게 말해 정규식이라 부르는 경우가 더 많다.
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
->쉽게 말해 컴퓨터가 이해할수 있도록 모든 기호와 형식을 문자화 시킨것.
예를 들어 공백은 정규식으로 \n 이다
*프로그래밍 언어마다 사용방법이 다르다. 자바는 그냥 스트링에 넣으면 된다.
3-1. 예제
String yourString;
yourString = "this is test run";
System.out.println(yourString);
yourString = "this is \n test run";
System.out.println(yourString);
result:
this is test run
this is
test run
4. 결론
정규식을 너무 많이 남발해도 문제지만, 공백제거에는 정규식을 사용하는 편이 좋다.
나중에 커다란 프로젝트에서 이런 작은문제때문에 몇일을 날밤새게되는 문제를 막을수 있다..
'old > Programming' 카테고리의 다른 글
홍미노트Redmi note 4에 리니지OS (Lineage OS) 인스톨 하는 법 (2) | 2017.08.01 |
---|---|
[자바]ArraylIst에서 중복 제거하는 7가지 방법 (0) | 2017.03.26 |
자바 프로그램 수행 시간 측정 하는 법 (성능 평가) (0) | 2017.03.17 |
새 하드 장착법: 윈도우7 이상 (0) | 2017.01.07 |
인텔 CPU 6세대 스카이레이크에서 윈도우7 USB로 설치하는 법 (0) | 2017.01.06 |