2010-07-28 8 views
2

Android 프로그램에 길이가 긴 문자열이 있습니다. 내가 필요한 것은 문자열의 각 단어를 분할하고 각 단어를 새로운 문자열 배열로 복사해야합니다. 예를 들어 : 문자열이 "나는 안드로이드 프로그램을했다"및 문자열 배열은 각 인덱스는 같은 값을 포함해야 my_array 배열 이름 :Android String Array 조작

:이 같은 모습을 한 프로그램의

my_array[0] = I 
my_array[1] = did 
my_array[2] = Android 
my_array[3] = Program 

일부를

StringTokenizer st = new StringTokenizer(result,"|"); 
Toast.makeText(appointment.this, st.nextToken(), Toast.LENGTH_SHORT).show(); 
while(st.hasMoreTokens()) 
{ 
String n = (String)st.nextToken(); 
services1[i] = n; 
Toast.makeText(appointment.this, st.nextToken(), Toast.LENGTH_SHORT).show(); 
} 

하나가 몇 가지 아이디어를 제안 주실 래요 ..

+1

StringTokenizer는 Java 6에서 사용되지 않습니다. –

답변

9

String.split()를 사용할 수 있습니까?

당신은 간단하게 할 수있는

String[] my_array = myStr.split("\\s+"); 
0

당신이 분할 문자열이 비어있을 때 [] 반환해야하는 경우가 String.split 사용하거나 안드로이드의 TextUtils.split 수 있습니다. StringTokenizer API 문서에서

:

있고 StringTokenizer는 사용이 새로운 코드에 실망하고 있지만 는 호환성을 을 위해 유지되는 레거시 클래스입니다. 이 기능을 원하는 사람 은 문자열 분할 방법 또는 java.util.regex 패키지를 대신 사용하는 것이 좋습니다.

1

'|' 정규 표현식의 특수 문자이므로 이스케이프 처리해야합니다. String 이후

for(String token : result.split("\\|")) 
     { 
      Toast.makeText(appointment.this, token, Toast.LENGTH_SHORT).show(); 
     } 
0

은 당신이 당신의 문자열을 변경할 수 없음을 의미 불변의 기본값입니다, 최종 클래스입니다. 시도하면 새 개체가 만들어지며 동일한 개체가 수정되지는 않습니다. 따라서 String을 조작해야한다는 것을 미리 알고있는 경우 StringBuilder 클래스부터 시작하는 것이 좋습니다. 스레드 처리를위한 StringBuffer도 있습니다.

substring(int start) 
Returns a new String that contains a subsequence of characters currently contained in this character sequence. 

또는 getChars() :

getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
Characters are copied from this sequence into the destination character array dst. 

또는 delete() : 다음

delete(int start, int end) 
Removes the characters in a substring of this sequence. 

당신이 정말로 말 사용의 String로 필요하면 StringBuildersubstring() 같은 방법이 있습니다 String 생성자

또는

String(StringBuffer buffer) 
Allocates a new string that contains the sequence of characters currently contained in the string buffer argument. 

String 방법을 사용하고 사용할 때 StringBuilder, this link 또는 this 도움이 될 때 이해할 수 있지만

. (StringBuilder는 메모리 절약과 함께 편리하게 제공됩니다.)