【问题标题】:J2ME String Splitter CounterJ2ME 字符串拆分计数器
【发布时间】:2009-12-20 16:23:19
【问题描述】:

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 内容。 谁能告诉我如何在这段代码中添加一个简单的计数器来计算结果被打印出来的次数,即有多少个令牌?因为我在挣扎。

非常感谢

【问题讨论】:

  • 不就是result.length吗?我错过了什么吗?

标签: java string java-me splitter


【解决方案1】:

无需添加计数器,因为该数组具有公开的 .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]);
}

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多