2013-06-29 15 views
0

문자열이 tajmahal.txt sarjan.pdf noorjahan.exe입니다. 이 문자열을 ar[0] = tajmahal.txt, ar[1] = sarjan.pdfar[2] = noorjahan.exe과 같은 문자열 배열에 저장하려고합니다. Java에서 빌드 함수를 사용하지 않고 어떻게 할 수 있습니까 (j2se는 많은 j2se 함수를 지원하지 않기 때문에). 어떤 도움이라도 좋을 것입니다. 미리 감사드립니다.문자열 부분을 문자열 배열로 저장

+1

중복 [내가 J2ME에서 문자열을 분할합니까?] (http://stackoverflow.com/questions/200746/how-do-i-split-strings-in-j2me) – angelsl

+0

당신은 싶습니다 자신 만의 사용자 정의 함수를 만들 수 있습니까? Java의 Split 함수를 사용하여 그렇게 할 수 있기 때문입니다. 편집 : 신경 쓰지 마, 방금 J2ME에서이 기능을 사용할 수 없다는 것을 알았습니다. – MrByte

+0

답변으로 확인하십시오 –

답변

0

String.split을 사용할 수 없으므로 당신은 자바 ME 구성/프로파일은 당신이 사용 설정하는에 따라이 answer

public static String[] Split(String splitStr, String delimiter) { 
    StringBuffer token = new StringBuffer(); 
    Vector tokens = new Vector(); 
    // split 
    char[] chars = splitStr.toCharArray(); 
    for (int i=0; i < chars.length; i++) { 
     if (delimiter.indexOf(chars[i]) != -1) { 
      // we bumbed into a delimiter 
      if (token.length() > 0) { 
       tokens.addElement(token.toString()); 
       token.setLength(0); 
      } 
     } else { 
      token.append(chars[i]); 
     } 
    } 
    // don't forget the "tail"... 
    if (token.length() > 0) { 
     tokens.addElement(token.toString()); 
    } 
    // convert the vector into an array 
    String[] splitArray = new String[tokens.size()]; 
    for (int i=0; i < splitArray.length; i++) { 
     splitArray[i] = (String)tokens.elementAt(i); 
    } 
    return splitArray; 
} 
0
String str="tajmahal.txt sarjan.pdf noorjahan.exe"; 
    StringTokenizer st=new StringTokenizer(str," "); 
    String[] arr=new String[st.countTokens()]; 
    int i=0; 
    while (st.hasMoreElements()){ 
      arr[i]=st.nextToken(); 
      i++; 
    } 
+0

이것이 작동합니다. –

0

에서 분할의 구현을 볼 수 있습니다.

컬렉션이없는 CLDC/MIDP의 경우 StringTokenizer, split() 등이 있습니다.

  1. 해당 공간 ('')을 먼저 계산하십시오.
  2. String [count + 1]을 준비합니다.
  3. 각 토큰을 분할하면서 StringBuffer로 문자를 버퍼링합니다.
static String[] split(final String string) { 

    // count spaces 
    int spaces = 0; 
    for (int i = 0; i < string.length(); i++) { 
     if (string.charAt(i) == 0x20) { 
      spaces++; 
     } 
    } 

    // prepare the array and buffer 
    final String[] split = new String[spaces + 1]; 
    final StringBuffer buffer = new StringBuffer(); 

    int index = 0; 
    for (int i = 0; i < string.length(); i++) { 
     if (string.charAt(i) == 0x20) { 
      split[index++] = buffer.toString(); 
      buffer.delete(0, buffer.length()); 
      continue; 
     } 
     buffer.append(string.charAt(i)); 
    } 

    return split; 
} 
0

는 J2ME에 있고 StringTokenizer의 구현이 있습니다. this example을 확인하면 작업에 도움이됩니다. 의

StringTokenizer token; 
token = new StringTokenizer(str); 
int i=0; 
while(token.hasMoreElements()){ 
ar[i++]= tok.nextToken(); 
} 
관련 문제