2013-06-29 146 views
0

我有一个字符串tajmahal.txt sarjan.pdf noorjahan.exe。我想将这个字符串存储在一个字符串数组中,例如ar[0] = tajmahal.txt,ar[1] = sarjan.pdfar[2] = noorjahan.exe。如何在java中不使用任何构建函数(因为我使用不支持许多j2se函数的j2me)来实现它。任何帮助都会很棒。提前致谢。将部分字符串存储在字符串数组中

+1

复制的[如何在J2ME分割字符串?](http://stackoverflow.com/questions/200746/how-do-i-split-strings-in-j2me) – angelsl

+0

你想创建您自己的自定义功能?因为您可以在Java中使用Split功能来执行此操作。 编辑:没关系,我刚才看到这个功能在J2ME中不可用。 – MrByte

+0

查看这些答案 –

回答

0

由于String.split不可用。你可以看到从这个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

This is working –

0

这要看Java ME的配置/情景模式设置您使用分割的实现。

当涉及到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(); 
} 
相关问题