[자바]split를 사용해보자

Posted by ITPangPang
2016. 4. 23. 11:57 Java/Java 예제


[자바]split를 사용해보자



- 문자열을 짤라낼때 많이 사용된다.


- 문자열을 짤라서 배열에 저장한다.


- 서버와의 통신을 할 때 자주 사용된다.







String 변수에 하나에 담겨있는

전화번호들이 있다고 치자

전화번호들은 ,로 구분되있다.


이럴경우 split를 사용하면

쉽게 분리할 수 있다.


public class Itpangpang

{

public static void main(String args[])

{

String str = "123-456-789,010-1234-5678,010-333-4444,02-3467-1647";

String strArr[] = str.split(",");

int i = -1;

while(true)

{

i++;

try

{

System.out.println(""+strArr[i]);

}

catch(Exception e){break;}

}

}

}



사용하는데 어려움은 없다

,가 들어가면 거기서 

짤라내고 배열에 담는 것이다.


,가 아닌 공백도 똑같다

그냥 " "를 넣어주면 된다.

한번 해보자

public class Itpangpang

{

public static void main(String args[])

{

String str = "동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세";

String strArr[] = str.split(" ");

int i = -1;

while(true)

{

i++;

try

{

System.out.print(strArr[i]+" ");

}

catch(Exception e){break;}

}

}

}





이번에는 

지금 설명할 부분은

아니지만

만약 마침표(.)를

기준으로

잘라내면

어떻게 될까요?


public class Itpangpang

{

public static void main(String args[])

{

String str = "동해물과.백두산이.마르고 닳도록.하느님이.보우하사.우리나라.만세.무궁화.삼천리.화려강산.대한.사람.대한으로.길이.보전하세";

String strArr[] = str.split(".");

int i = -1;

while(true)

{

i++;

try

{

System.out.print(strArr[i]+" ");

}

catch(Exception e){break;}

}

}

}


한번 돌려보면

결과는 아무것도

안뜨게 됩니다.


이유는

자바에는 정규식이란

것이 있습니다.


정규식에서 마침표(.)는

문자 1글자를 의미합니다.


그래서 위에서 보았듯이

쉼표(,)를 기준으로 짤랐으면

쉼표가 사라지고 표시됬으니


마침표(.)를 기준으로 짤라내면

문자 1글자가 기준이므로 

모두 다 사라지게 됩니다.


그래서 해결방법은

마침표 앞에 \\를

붙이면 됩니다.


왜 그런지는 나중에

정규식에 대해 

자세히 알아볼때

설명하겠습니다.


public class Itpangpang

{

public static void main(String args[])

{

String str = "동해물과.백두산이.마르고 닳도록.하느님이.보우하사.우리나라.만세.무궁화.삼천리.화려강산.대한.사람.대한으로.길이.보전하세";

String strArr[] = str.split("\\.");

int i = -1;

while(true)

{

i++;

try

{

System.out.print(strArr[i]+" ");

}

catch(Exception e){break;}

}

}

}



이번에는

키보드로부터 문자열을

입력받아서 

split를 사용해보겠습니다.

public class Itpangpang

{

public static void main(String args[])

{

String str;

Scanner sc = new Scanner(System.in);

str = sc.nextLine();

String strArr[] = str.split(" ");

int i = -1;

while(true)

{

i++;

try

{

System.out.println(strArr[i]+" ");

}

catch(Exception e){break;}

}

}

}





참 쉽죠?

String을 처리하는 과정은

여러가지 혼합해서 사용할때

더욱 매력적이죠

indexOf, substring, chatAt,

Contains, concat등등

거기에 +정규식까지

자유자재로 사용할 수 있게 되면

정말 모든지 원하는 모양으로

String을 처리할 수 있게 될겁니다.