Java split 사용법

Java 2009. 5. 25. 11:30
□ 문자열을 구분자로 자를때

- "1:2:3::::" 문자열을 ":" 기준으로 자른다.
○ limit 가 0 인 경우
   String abc = "1:2:3::::";
   String regex = ":";
   int limit = 0;
   String[] results = abc.split(regex, limit);

   결과 ("1", "2", "3")
   zero length string 은 무시된다.

○ limit 가 양수인 경우
   String abc = "1:2:3::::";
   String regex = ":";
   int limit = 5;
   String[] results = abc.split(regex, limit);

   결과 ("1", "2", "3", "", "::")
   배열의 최대갯수는 limit를 넘지 못한다.

○ limit 가 음수인 경우
   String abc = "1:2:3::::";
   String regex = ":";
   int limit = -1;
   String[] results = abc.split(regex, limit);

   결과 ("1", "2", "3", "", "", "", "")
   zero length string 도 포함한다.



□ 문자열 나누기 ( StringTokenizer, split의 차이 )

   String str = "ibzkenshin,nowon,,abc@kbs.com";

   String[] values = str.split(",", 4);
   out.println(str+"<br>");

   for( int x = 0; x < values.length; x++ ){
        out.println( "문자(열) " + (x+1) + " : " + values[x] +"<br>");
   }

   StringTokenizer tokens = new StringTokenizer( str, "," );
   out.println(str+"<br>");

   for( int x = 1; tokens.hasMoreElements(); x++ ){
       out.println( "문자(열) " + x + " : " + tokens.nextToken() + "<br>");
   } 

   // 결과

   * split는 값의 갯수를 주면 빈값도 처리되나 제한값을 알아야 한다.

      kk,mmm,,abc@hanmail.net
      문자(열) 1 : kk
      문자(열) 2 : mmm
      문자(열) 3 :
      문자(열) 4 : abc@hanmail.net 

   * StringTokenizer는 빈값은 무시하고 처리한다.

      kk,mmm,,abc@hanmail.net
      문자(열) 1 : kk
      문자(열) 2 : mmm
      문자(열) 3 : abc@hanmail.net


posted by 느릅나무™