2016년 6월 15일 수요일

[안드로이드/자바] String.replaceAll을 이용한 숫자 추출










안드로이드에서 숫자만 추출해서 쓸 일이 있어서 따로 적어두려합니다.



Java 환경에서는 모두 동작할 듯 싶습니다.


public static int AfterDay(String data)
    {
        String mData = "";
        mData = data.replaceAll("[^0-9]", "");

        Log.i(TAG, TAG + " : " + mData);
        return Integer.valueOf(mData);
    }



replaceAll(string1,string2) 함수를 통해, 값을 얻어냅니다.

원래 replaceAll 은 string1의 조건이 만족하는 string을 string2로 교체하는 역활입니다.

replace같은 경우, 처음만 바꾸는 등의 여러 조건이 있지만, replaceAll은 문장 전체에 해당합니다.

위의 replaceAll("[^0-9]","")는

숫자를 제외한 String을 ""로 바꾸어 줍니다.

그리고 Integer.valueOf(String)을 통해 String -> int 형으로 값 변환을 합니다.


두가지 방법이 더 있는데,

String clean3 = string1.replaceAll("\\D", "");
String clean2 = string2.replaceAll("[^\\d]", "");

를 통해서도 추출이 가능합니다.


정규표현식으로 알고 있는데, 자세히는 모르겠네요, 다음에 포스팅 해야겠습니다..








위의 그림은 Input 값 wf30을 30으로 바꾸어 추출한 결과입니다.


(출처 : http://stackoverflow.com/questions/6883579/java-regular-expression-removing-everything-but-numbers-from-string)

댓글 없음:

댓글 쓰기