split() 함수는 문자열을 특정 구분자를 기준으로 나누어 배열로 만들 수 있습니다.

// ex.1)
public class Ex01{
    public static void main(String[] args) {
        String str = "국어:90:영어:80:수학:70";
 
        // : 를 구분해서 나눕니다.
        String[] arr = str.split(":");
        for (int i = 0; i < arr.length; i++) {
            System.out.print("[" + arr[i] + "] ");
        }
    }
}


아래는 결과 화면입니다.


다음은 구분자를 지정하지 않았을 때의 결과입니다. 

// ex.2)
public class Ex01{
    public static void main(String[] args) {
        String str = "국어:90:영어:80:수학:70";
 
        String[] arr = str.split("");
        for (int i = 0; i < arr.length; i++) {
            System.out.print("[" + arr[i] + "] ");
        }
    }
}


아래는 결과 화면입니다.

 

// ex.3)
public class Ex01{
    public static void main(String[] args) {
        double ddd = 3.14d;
        String str2 = String.valueOf(ddd);
         
        // 결과: 3
        System.out.println(str2.split("\\.")[0]);
        // 결과: 14
        System.out.println(str2.split("\\.")[1]);
    }   
}


다음은 정규표현식을 이용하였습니다. 

// ex.4)
public class Ex01{  
    public static void main(String[] args) {
        String str = "korean Members You's man";
         
        // 패턴 공백과 '를 기준으로 나눕니다.
        String arr[] = str.split("[ ']");
        for (int i = 0; i < arr.length; i++) {
            System.out.print("[" + arr[i] + "] ");
        }
        // 결과: [korean] [Members] [You] [s] [man]
    }
}


다음은 StringTokenizer 를 이용해 문자열을 나눠 보겠습니다. 

// ex,5)
import java.util.StringTokenizer;
 
 
public class Ex01{
    public static void main(String[] args) {
        String str = "korean Members korean You's man";
         
        // 공백을 기준으로 문자열을 나눕니다.
        StringTokenizer tok = new StringTokenizer(str, " ");
        String[] new_str = new String[tok.countTokens()];
         
        for (int i = 0; i < new_str.length; i++) {
            new_str[i] = tok.nextToken();
        }
         
        for (int i = 0; i < new_str.length; i++) {
            System.out.print(new_str[i] + ", ");
        }
        // 결과: korean, Members, korean, You's, man, 
    }
}


0 댓글