본문 바로가기
자바

자바 문자열을 잘라서 배열로 split( ) , stringTokenizer [북붙따라하기]

by 세상 모든 것 들은 그 자신을 위해 존재한다. 2020. 12. 29.

split( ) 메소드와  StringTokenizer 클래스 비교 

사용 예제 ) 코드를 복붙 하여 실행 해 보시기 바랍니다. 설명은 코드 아래 부분에 있습니다.

먼저 split( ) 예제 입니다.

import java.util.StringTokenizer;

public class Sample {

	public static void main(String[] args) {

		///////////////// 문자열 을 잘라서 배열로저장 예제
		//////////////// split()
		String strHi = "영희는:철수를%싫어#합니다.";
		
		String[] strArrResult = strHi.split("[:%#]");//정규표현식 사용가능
		//정규 표현식이 아닌 하나만 사용할때는 
        	//String[] strArrResult = strHi.split(":");
        
		for(int i=0; i<strArrResult.length; i++) {
			System.out.printf("strArrResult[%d] : [%s]\n",i,strArrResult[i]);
		}	
	}
}
//결과는 :

//strArrResult[0] : [영희는]
//strArrResult[1] : [철수를]
//strArrResult[2] : [싫어]
//strArrResult[3] : [합니다.]


 

StringTokenizer 클래스 예제 입니다.

import java.util.StringTokenizer;

public class Sample {

	public static void main(String[] args) {

		///////////////// 문자열 을 잘라서 배열로저장 예제
		//////////////// split()
		String strHi = "영희는:철수를%싫어#합니다.";
		
		String[] strArrResult = strHi.split("[:%#]");//정규표현식 사용가능
		
		for(int i=0; i<strArrResult.length; i++) {
			System.out.printf("strArrResult[%d] : [%s]\n",i,strArrResult[i]);
		}
		
		
		///////////////// 문자열 을 잘라서 배열로저장 예제
		//////////////// stringTokenizer 클래스
		String strTrue = "철수는 / 영희를 / 싫어 / 합니다.";
		
		StringTokenizer st = new StringTokenizer(strTrue, "/");
		int nCount = st.countTokens();
		for(int i=0; i<nCount; i++) {
			String strImsi = st.nextToken();
			System.out.println(strImsi);
		}
		
		st = new StringTokenizer(strTrue, "/");
		while( st.hasMoreTokens() ) {
			String strImsi = st.nextToken();
			System.out.println(strImsi);
		}	
	}
}
//결과는 :

//strArrResult[0] : [영희는]
//strArrResult[1] : [철수를]
//strArrResult[2] : [싫어]
//strArrResult[3] : [합니다.]


//철수는 
// 영희를 
// 싫어 
// 합니다.
//철수는 
// 영희를 
// 싫어 
// 합니다.

 

기능은 비슷해 보이나 split( ) 만 주로 사용 하고 있습니다.

StringTokenizer 클래스 는 정규표현식을 사용할수 없고 

사용하기전 예비 동작(생성자 생성 등) 이 너무많고 번거롭습니다.

코딩을  하면서 굳이 사용 해야 되나를 다시 한번 생각하게 됩니다.

구성은 :

 

문자열배열 = 기존분리할 문자열 . split("구분자" );

 

그냥 split( ) 사용하는것을 추천드립니다.

 

아래는 실전 예제 )

 

//문자열을 배열로 분리해 전달
public class AStringSplit {
	String[] strArrOut=null;
	
	public String[] vstrSplit(String strIn,String strSplitFlag) {
		
		strArrOut = strIn.split(strSplitFlag);
		for (int i = 0; i < strArrOut.length; i++) {
			//System.out.printf("AStringSplit--strArrOut[%d]=[%s]\n", i, strArrOut[i]);
			
		}
		return strArrOut;
	}
}

 

 

설명 끝.

 

 

728x90
반응형

댓글