Java/Source
문자열에서 숫자만 뽑아서 반환하는 함수...
Huikyun
2009. 5. 28. 11:03
전화번호와 같은 값을 받아서 사용할때,
포맷에 따라 '-', ')' 등의 특수문자가 들어있을 수도 있다.
그냥 문자 치환을 통해서 해결할 수 있는 경우가 많지만
예측할 수 없는 문자가 있을 수 있는 경우는 어떻게 해야 할까?
아래와 같은 방법으로 문자들을 모두 체크해서 숫자인것만 뽑아내야 하겠다.
처음에 생각했던 로직은 반복문 안에서
if ("0123456789".indexOf(curChar) > -1)
대충 이런식으로 숫자인지 확인을 하는 것이었지만
Character 클래스의 isDigit(char char) 함수를 사용하니 훨신 빠르게 돌아갔다.
100만번 돌리고 ms 측정을 하고 캡쳐를 했지만 이 포스트 쓸때는 찾지 못했음.
========================================================================
public static String getOnlyNumberString(String str) { if (str == null) return str; StringBuffer sb = new StringBuffer(); int length = str.length(); for (int i = 0; i < length; i++) { char curChar = str.charAt(i); if (Character.isDigit(curChar)) sb.append(curChar); } return sb.toString(); }