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