앱 만들기/안드로이드

JAVA - StringTokenizer (토큰 얻어오기)

나도 처음이야 2020. 4. 13.

로직을 만들다보면,

문자열을 잘라서 써야 할때가 있다.  예를 들자면 하기와 같다.

문자열에서 "-" 를 기준으로 Asia, Afghanistan, Kabul을 빼내오고 싶다.

 

String tokenTest ="Asia-Afghanistan-Kabul"; 

 

Java 에서는 이를 손쉽게 도와주는 StringTokenizer 란 클래스를 제공한다.

참고로 Token(토큰) 이라는 용어에 대해서 이해하고 사용해 보자.

토큰은 프로그래밍 언어에서는 문자열의 최소 작은 단위를 이야기 한다. 

옛날 버스를 탈때 토큰을 내고 탔던거 처럼 말이다.

그럼 위 구문에서는 "-" 구분자를 기준으로 잘라내면,  Asia, Afghanistan, Kabul 가 토큰들이 된다.

즉, 토큰이 3개이다. 

그럼 이제, 토큰 3개를 얻어오는 코드를 작성해보자.

import java.util.StringTokenizer;

public class Token {   
  public static void main(String[] args) {

    String tokenTest ="Asia-Afghanistan-Kabul";

     //STringTokenize 인스턴스 행성. 매개변수로(토큰을 얻고자 하는 String, 구분자)
    StringTokenizer token = new StringTokenizer(tokenTest, "-");

       // 토큰이 나올때 까지 반복.  
    while(token.hasMoreElements())

       // 토큰을 출력하기
         System.out.println(token.nextToken());
       }
}

 

/* 결과 */

Asia
Afghanistan
Kabul

즉, 위와 같이 구분자를 통해 토큰들을 잘 가지고 왔다.

그럼 이번에는 가져온 토큰을 배열에 담는 코드를 응용해 보자.

물론 데이터 가공은 여러가지 방식으로 가능할 것이다.

public static void main(String[] args) {

String tokenTest ="Asia-Afghanistan-Kabul";
String[] info = new String[3];

   //STringTokenize 인스턴스 행성. 매개변수로(토큰을 얻고자 하는 String, 구분자)
   StringTokenizer token = new StringTokenizer(tokenTest, "-");
        // 토큰이 나올때 까지 반복.
   for(int i = 0; token.hasMoreTokens() ; i++) {
        // 배열에 토큰을 저장
        info[i] = token.nextToken();
        System.out.println("info[" + i + "] = " + info[i] );
 } 

/* 결과 */

info[0] = Asia
info[1] = Afghanistan
info[2] = Kabul

추가로, 구분자를 설정하지 않는다면 공백으로 토큰을 반환하게 된다.

하기 스트링을 가공하자 할때 유용하다.

String tokenTest ="Asia Afghanistan Kabul";

 

오늘도 티스토리를 방문해주셔서 감사드립니다.

좋은 하루되세요. 

 

 

반응형

댓글