자바에서 알파벳과 숫자가 섞인 문자열의 앞에 0이 올때 이걸 지울수는 없을까요?
조회수 1149회
01234 -> 1234
0001234a -> 1234a
001234-a -> 1234-a
101234 -> 101234
2509398 -> 2509398
123z -> 123z
000002829839 -> 2829839
이런식으로 앞에 0이 올때만 지워주고 아닐경우는 그냥 그대로 유지시켜주고싶은데요 어떻게하면 좋을까요?
1 답변
-
정규식을 이용하면 간단하게 해결할수있습니다. 앞에오는 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 여기에 자세하게 나와있습니다.
댓글 입력