J2ME 字符串分词器:
public String[] split(String toSplit, char delim, boolean ignoreEmpty) {
StringBuffer buffer = new StringBuffer();
Stack stringStack = new Stack();
for (int i = 0; i < toSplit.length(); i++) {
if (toSplit.charAt(i) != delim) {
buffer.append((char) toSplit.charAt(i));
} else {
if (buffer.toString().trim().length() == 0 && ignoreEmpty) {
} else {
stringStack.addElement(buffer.toString());
}
buffer = new StringBuffer();
}
}
if (buffer.length() != 0) {
stringStack.addElement(buffer.toString());
}
String[] split = new String[stringStack.size()];
for (int i = 0; i < split.length; i++) {
split[split.length - 1 - i] = (String) stringStack.pop();
}
stringStack = null;
buffer = null;
return split;
}
调用方法:
String toSplit = myThreadObject.GetInfo();
String del = DelimiterValue.getString();
char delimiter = del.charAt(0);
String[] result = split(toSplit, delimiter, false);
if (result != null) {
for (int i = 0; i < result.length; i++) {
System.out.println("The elements are: " + result[i]);
}
} else {
System.out.println("The result is empty");
}
这是一个在J2ME中如何拆分字符串的例子,它实际上是拆分一个线程中拉取的网站的html内容。 谁能告诉我如何在这段代码中添加一个简单的计数器来计算结果打印的次数,即有多少个标记?因为我在挣扎。
非常感谢
最佳答案
无需添加计数器,因为数组具有公共(public) .length
属性,它会为您公开计数。我在您的代码中添加了一行(并在其之前添加了一条评论)。我还删除了您对 result != null
的检查,因为您的 split()
方法永远不会返回 null
。如果没有匹配,它返回一个零长度数组。
String toSplit = myThreadObject.GetInfo();
String del = DelimiterValue.getString();
char delimiter = del.charAt(0);
String[] result = split(toSplit, delimiter, false);
// add the line below:
System.out.println("There are " + result.length + " results");
for (int i = 0; i < result.length; i++) {
System.out.println("The elements are: " + result[i]);
}
关于java - J2ME 字符串拆分器计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936257/