자바에서 알파벳과 숫자가 섞인 문자열의 앞에 0이 올때 이걸 지울수는 없을까요?


01234 -> 1234
0001234a -> 1234a
001234-a -> 1234-a
101234 -> 101234
2509398 -> 2509398
123z -> 123z
000002829839 -> 2829839

이런식으로 앞에 0이 올때만 지워주고 아닐경우는 그냥 그대로 유지시켜주고싶은데요 어떻게하면 좋을까요?

  • 2016년 02월 23일에 작성됨

조회수 132


1 답변


좋아요
0
싫어요
채택취소하기

정규식을 이용하면 간단하게 해결할수있습니다. 앞에오는 0만 지워주고싶다고 하셨으니까 s.replaceFirst("^0+(?!$)", "") 이런식으로 정규식과 replaceFirst메소드를 이용하시면 될것같습니다.

String[] in = {
    "01234",         // "[1234]"
    "0001234a",      // "[1234a]"
    "101234",        // "[101234]"
    "000002829839",  // "[2829839]"
    "0",             // "[0]"
    "0000000",       // "[0]"
    "0000009",       // "[9]"
    "000000z",       // "[z]"
    "000000.z",      // "[.z]"
};
for (String s : in) {
    System.out.println("[" + s.replaceFirst("^0+(?!$)", "") + "]");
}

정규식에 대해서 궁금하시다면 http://breath91.tistory.com/entry/Java-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D 여기에 자세하게 나와있습니다.

  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close