★ 문자열을 나누는 방법.
문자열을 나누는 방법에는 크게 아래와 같이 2가지가 있습니다.
[ StringTokenizer 이용 ]
예제>
String str = "MouseVM,,StringTokenizer";
StringTokenizer tokens = new StringTokenizer( str, "," );를 사용 할 경우
for( int x = 1; tokens.hasMoreElements(); x++ )
{
System.out.println( "문자(열) " + x + " : " + tokens.nextToken() );
}
결과>
문자(열) 1 : MouseVM
문자(열) 2 : StringTokenizer
[ Split 를 이용 ]
예제>
String str = "MouseVM,,Slpit";
String[] values = str.split(",");
for( int x = 0; x < values.length; x++ )
{
System.out.println( "문자(열) " + (x+1) + " : " + values[x] );
}
결과>
문자(열) 1 : MouseVM
문자(열) 2 :
문자(열) 3 : Slpit
이 두가지의 차이점은, StringTokenizer 는 값이 없는것은 무시 한다는 점입니다.
즉, 값이 없어도 처리를 하고 싶을경우 split를 이용하고, 그외의 경우는 StringTokenizer 를 사용하면 됩니다.
출처 : http://cafe.naver.com/pgzoo.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=14
※ 주의사항
문자열을 나누기 위해 Split 함수를 쓸때 주의할 사항이 있습니다.
저도 오늘 사용하면서 알게 되었는데요~
String의 멤버함수들 중
replaceAll ( 정규식 , 대체문자열 )
split ( 정규식 )
matches ( 정규식 )
과 같이 정규식을 인수로 넣도록 하는 하는 것들이 있습니다.
정규식은 예약된 표기법을 이용 규칙적인 패턴을 갖는 문자열을 찾는다거나 혹은 변형하는 기능을 갖도록 합니다.
고로, 문자열이 만약 "MouseVM..Slpit" 로 정의되어 있다면
이렇게 str.split("."); 호출하여도 원하는 결과를 얻을 수 없다는 것을 의미합니다.
원하는 결과를 얻기 위해서는
str.split("\\.");
이렇게 사용하여야 합니다.
점(.)은 정규식에서 개행문자를 제외한 아무문자하나를 말합니다.
점을 점 그데로 인식 시키려면 예약어를 일반문자처럼 사용하기 위해 back slash를 앞쪽에 하나 넣어 주는데, 위에서 두 개를 넣은 것은 자바 문법에서 "" 내부에서 \ 가 예약어라 \\개를 넣어 줍니다.
출처 : http://mousevm.tistory.com/83
'안드로이드' 카테고리의 다른 글
[android] dp 값을 px, px 값을 dp 값으로 변환 (0) | 2013.03.25 |
---|---|
[android] 힙 메모리 늘리기 (3.0)이하 사용 가능 (0) | 2013.03.20 |
[android] email 보내기 (파일첨부 포함) (0) | 2013.02.28 |
[android] 사진, 동영상 파일 갤러리에 저장 (0) | 2013.02.28 |
[android] webView 띄우기 (0) | 2013.02.28 |