2013-06-29 147 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(); 
} 
相關問題