마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이 split 구문에 무슨 문제가 있습니꺄?

0 추천
String resultStr1 = "A^B^C^D";

String[] resultStr1s = resultStr1.split("^");


Toast.makeText(MainActivity.this, resultStr1s[0], Toast.LENGTH_SHORT).show();

이렇게 토스트를 띄워보면, 토스트가 뜨긴 뜨는데 공란으로 나오고,

resultStr1s[1] 을 토스트 띄워보면 "A^B^C^D" 가 뜨고

resultStr1s[2] 부터는 프로세스가 그냥 멈춰버립니다.

간단한 구문인데, 뭐가 문제입니꺄?

개님의습성 (2,500 포인트) 님이 2013년 5월 6일 질문

2개의 답변

+2 추천
 
채택된 답변
resultStr1.split("^");

을 

resultStr1.split("\\^");

로 바꿔서해보세요

자바 정규식 문자라서 그런듯합니다

bangbang (8,820 포인트) 님이 2013년 5월 6일 답변
개님의습성님이 2013년 5월 6일 채택됨
+1 추천

split 메소드는 아래와 같은 원형을 갖습니다

 

public String[] split (String regularExpression)

괄호 안에 들어가는 부분이 구분자(delimeter)가 아닌 정규식(regular expression)입니다.

^가 정규식에서 아무 의미가 없다면, 했던대로 하셔도 원하는 결과가 나와야 합니다만, ^는 정규식에서 문자열의 처음을 의미합니다.

따라서 정규식의 ^가 아닌, 일개 구분자 ^라고 알려주기 위해서 아랫분이 적으신 것처럼 \\^으로 변경해주셔야 합니다.

그외 Pattern.quote("^") 를 쓰시거나, 여러가지 다른 방법(StringTokenizer, Pattern.compile 등)들이 있습니다.

 

익명사용자 님이 2013년 5월 6일 답변
...