Tokenize 란 문자열을 특정 구분기호로 구분하여 나누는 작업을 의미한다. 여기서 구분기호를 delim 이라고 하며, 새로 나뉘어진 문자열 하나하나를 token 이라고 한다. 가령 주어진 TString,
TString name = "green.7121.apple"
에 대하여, 마침표 "."를 구분기호로 정하면, name은 새로운 3개의 문자열 "green", "7121", "apple"로 나뉜다. 이때, delim과 token은
- delim: 마침표 "."
- token: "green", "7121", "apple"
이 된다.
TString 은 tokenize 기능을 Tokenize() 함수로 구현하였고 다음과 같이 사용한다.
TString name = "green.7121.apple"; TObjArray *tokens = name.Tokenize("."); TString token0 = ((TObjString *) tokens -> At(0)) -> GetString(); TString token1 = ((TObjString *) tokens -> At(1)) -> GetString(); TString token2 = ((TObjString *) tokens -> At(2)) -> GetString(); cout << token0 << endl; cout << token1 << endl; cout << token2 << endl;
green
7121
apple
7121
apple
Tokenize() 의 매개변수로 delim(".")을 적으면 각 token이 TObjArray에 들어간다. TObjArray 에 들어간 문자열은 TObjString 의 형태로 들어간다. TObjectString 은 TObjArray 에 저장하기 위해서 TObject를 껍질로 사용하는 클래스다. 그래서 TString의 형태로 꺼내오려면 GetString() 함수를 이용한다.