将字符串的一部分存储在字符串数组中

时间:2013-06-29 10:20:19

标签: java arrays string java-me split

我有一个字符串tajmahal.txt sarjan.pdf noorjahan.exe。我想将此字符串存储在字符串数组中,以便ar[0] = tajmahal.txtar[1] = sarjan.pdfar[2] = noorjahan.exe。如何在不使用java中的任何构建函数的情况下执行此操作(因为我使用的j2me不支持许多j2se函数)。任何帮助都会很棒。提前谢谢。

4 个答案:

答案 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;
 }

答案 1 :(得分: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++;
    }

答案 2 :(得分:0)

这取决于您使用的Java ME配置/配置文件集。

当谈到CLDC / MIDP时,没有集合,StringTokenizer,split()等等。

  1. 首先计算那些空格('')。
  2. 准备一个字符串[count + 1]。
  3. 在使用StringBuffer缓冲字符时拆分每个令牌。
  4. 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;
    }
    

答案 3 :(得分:0)

J2me中有StringTokenizer的实现。 查看this example以帮助您完成任务。

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