簡體   English   中英

將字符串的一部分存儲在字符串數組中

[英]Store parts of string in a string array

我有一個字符串tajmahal.txt sarjan.pdf noorjahan.exe 我想將此字符串存儲在字符串數組中,以便ar[0] = tajmahal.txtar[1] = sarjan.pdfar[2] = noorjahan.exe 不使用Java中的任何構建函數就如何做到這一點(因為我使用的j2me不支持許多j2se函數)。 任何幫助都會很棒。 提前致謝。

由於String.split不可用。 您可以從此答案中看到split的實現

 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;
 }
    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++;
    }

這取決於您使用的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;
}

J2me中有StringTokenizer的實現。 查看此示例以幫助您完成任務。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM