java

Java Split()

 

Question:


split 사용법에 대해서 모르는게 많은데요. split 즉 문자를 쪽는 것인데, string[] wordsplit=str.split(‘ ‘); 이 하 코드에서 이렇게 하면은 12,33,23,15,17이렇게 나오고 ‘,’,’,’,’이렇게 하면은 17이렇게 나오는데, 자기가 원하는 값을 구할려면은 split 함수를 잘 알아야 겠는데, split 함수 사용법을 알려주세요.

string str= "12,33,23,15,17";

string[] wordsplit= str.split(' ');

for(int i=0; i<wordsplit.Length; i++) {

	textResult.Text=wordsplit[i];

}

 

Answer: 

public class SplitTest {
    public static void main(String[] args) {
	String str = "12,33,23,15,17";
	// ','를 기준으로 Split()
	String[] strArr = str.split(","); 
	for (String string : strArr) {
		System.out.print(string+"\t");
	}
	System.out.println();
	str = "12 33 23 15 17";
	// ' '을 기준으로 Split()
	strArr = str.split(" ");
	for (String string : strArr) {
		System.out.print(string+"\t");
	}
	System.out.println();
	str = "12|33|23|15|17";
	// '|' 를 기준으로 Split() 
	strArr = str.split("|");
	for (String string : strArr) {
		System.out.print(string+"\t");
	}
	System.out.println();
	str = "12|33|23|15|17";
	strArr = str.split("\\|");
	for (String string : strArr) {
		System.out.print(string+"\t");
	}
	System.out.println();
	str = "12*33*23*15*17";
	strArr = str.split("\\*");
	for (String string : strArr) {
		System.out.print(string+"\t");
	}
    }
}
먼저 split 함수를 API 에서 찾아 보면 아래와 같이 나옵니다.

public String[] split(String regex)

리턴값은 스트링 배열이고 파라미터는 스트링입니다. 주의 하실 부분은

파라미터 명이 regex 라는 부분입니다.

regex는 regular expression_(정규표현식은 별도로 찾아보십시오)

간단하게 몇가지 예를 들겠습니다.

String str = “12,33,23,15,17”;

숫자를 구분하는 기준은 ‘,’ 입니다. 그렇기 때문에

String[] strArr = str.split(“,”); // 파라미터로 ‘,’를 넣습니다

.

str = “12 33 23 15 17”;

숫자를 구분하는 기준은 ‘ ‘(공백) 입니다. 그렇기 때문에

strArr = str.split(” “); // 파라미터로 ‘ ‘(공백) 을 넣습니다.

str = “12|33|23|15|17”;

숫자를 구분하는 기준은 ‘|’ 입니다. 그렇기 때문에

strArr = str.split(“|”); // 파라미터로 ‘|’를 넣으면 안됩니다.

만약 파라미터로 ‘|’를 넣게 되면

1 2 | 3 3 | 2 3 | 1 5 | 1 7

한글자씩 잘린 배열을 볼 수 있습니다.

이유는 문자 ‘|’ 는 정규식에서 사용하는 문자 이기 때문입니다.

그러면 정규식에서 사용하는 문자는 어떻게 해야 하나?

str = “12|33|23|15|17”;

strArr = str.split(“\\|”); //앞에 역슬러시 두개를 넣습니다.

‘|’ 이외 정규식에서 사용하는 문자는 대략 ‘*’,’$’,’^’,’|’,’_’,'[‘,’]’,'(‘,’)’.. 등이 있습니다.

역슬러시 두개를 넣으면 원하는 결과를 출력할 수 있습니다.

Split()과 비슷한 함수로는 replaceAll(String regex, String replacement) 입니다.

감사합니다.