KyungHwan's etc.

자바(JAVA) 공백 문자열 제거 본문

Java

자바(JAVA) 공백 문자열 제거

KyungHwan_0 2018. 6. 12. 14:19


1
2
3
4
5
6
7
8
9
10
public class TTTT {
 
    public static void main(String[] args) {
 
        String s= "  space  space  space   ";
        s= s.trim();
        
        System.out.println(s);
    }
}
cs

s.trim() : s 문자열 좌, 우 끝의 공백을 제거함

결과 : 

space  space  space


1
2
3
4
5
6
7
8
9
10
public class TTTT {
 
    public static void main(String[] args) {
 
        String s= "  space  space  space   ";
        s= s.replace(" """);
        
        System.out.println(s);
    }
}
cs

s.replace(" ","") : s 문자열에서 1칸의 공백을 -> 0칸의 공백? 으로 바꿈

결과 :

spacespacespace


문제 : 

위의 방법으로 제거되지 않는 공백이 존재

상기 코드로 삭제되지 않는 이유는.. cjk 문자셋에서 나타나는 IDEOGRAPHIC SPACE 라 불리는 유니코드 \u3000 , HTML 표현으로는   문자로 폰트 지원이 없으면 눈에 보이지 않는(display 되지 않는) 코드로만 존재하는 공백이기 때문.

http://www.yunsobi.com/blog/596 >


해결 :

1
2
3
4
5
6
7
8
9
10
11
public class TTTT {
 
    public static void main(String[] args) {
 
        String s= "  space  space  space   ";
        s= s.replaceAll("\\p{Z}","");
        //s= s.replaceAll("(^\\p{Z}+|\\p{Z}+$)", "");
        
        System.out.println(s);
    }
}
cs

s.replaceAll("\\p{Z}","") : s 문자열에서 정규식 1칸의 공백을 -> 0칸의 공백으로 바꿈

s.replaceAll("(^\\p{Z}+|\\p{Z}+$)", "") : s 문자열에서 정규식 1칸의 좌, 우 끝의 공백을 -> 0칸의 공백으로 바꿈

결과 :

spacespacespace

space  space  space



Reference

http://parkdex.tistory.com/3


Comments