java - 黑莓替换字符串的方法?

标签 java eclipse blackberry java-me

所以,再一次,由于黑莓的 api 限制,我有 2 个问题:

  1. 我从 IOUtilities.streamToBytes(httpInput) 得到的响应;调用包含“<”人物。那么我可以使用什么黑莓类/方法来替换我的“<”用“<”? String 类中只有 1 个 replace() 方法,该方法只能用另一个字符替换 1 个字符。同样,由于这是一个黑莓项目,我无法访问 Java 1.4 以上的任何内容

  2. 我也从我的 IOUtilities.streamToBytes(httpInput) 得到的响应;调用以通常的 soap 响应“"开始。任何黑莓类/方法,我可以用来告诉程序只返回 "

    最佳答案

您遇到的情况是被迫使用基于早期 J2SE 版本的 J2ME 配置文件。

我有一个替换字符串的实用方法,是我在针对早期平台时编写的,可能对您有用。但是请注意,您真正需要的是 XML 解析器;仅当 XML 非常简单时,仅替换字符串才有效。

static public String replace(String val, String fnd, String rpl, boolean igncas) {
    int                                 fl=(fnd==null ? 0 : fnd.length());

    if(fl>0 && val.length()>=fl) {
        StringBuffer                    sb=null;                                // string buffer
        int                             xp=0;                                   // index of previous fnd

        for(int xa=0,mi=(val.length()-fl); xa<=mi; xa++) {
            if(val.regionMatches(igncas,xa,fnd,0,fl)) {
                if(xa>xp) { sb=append(sb,val.substring(xp,xa)); }               // substring uses private construct which does not dup char[]
                sb=append(sb,rpl);
                xp=(xa+fl);
                xa=(xp-1);                                                      // -1 to account for loop xa++;
                }
            }

        if(sb!=null) {
            if(xp<val.length()) { sb.append(val.substring(xp,val.length())); }  // substring uses private construct which does not dup char[]
            return sb.toString();
            }
        }
    return val;
    }

static private StringBuffer append(StringBuffer sb, String txt) {
    if(sb==null) { sb=new StringBuffer(txt.length()); }
    sb.append(txt);
    return sb;
    }

关于你问题的第二部分,你需要使用 XML 解析器来提取你想要的信息。否则,您将需要进行一些(可能是笨拙的)体力劳动。

快速浏览 CLDC 表明它可能基于 Java 1.1(呃!)。 DigiLife 有一个 PDF document那里有一些关于 J2ME 的更多有用信息。

了解您的目标配置(CDC 或 CLDC)和配置文件(MIDP 或 PP)对于了解哪些 API 可用至关重要。请注意,即使您使用的是 基于 J2SE 1.4 的配置文件,它也可能缺少各种类和方法,包括各种 XML 解析包。因此,您可能必须自己从第三方提供替代方案(或自己编写)。

编辑:我注意到 BlackBerry V5 doco确实包括 XML 解析器包。

关于java - 黑莓替换字符串的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2202100/

相关文章:

java - 重用缓存的 spring 上下文来构建更大的上下文

java - 匿名变量(?)的优点?

java - Maven Web 项目无法启动

java - 如何在 Tomcat 而不是 jettyserver 上运行 broadleaf ..?

java - 黑莓RSA算法实现?

javascript - 黑莓浏览器 Javascript 时间 DST 问题

java - Selenium 页面对象模型框架

java - 从原始文件夹播放随机声音

html - BlackBerry HTML5 流媒体的编码设置是什么?

java - 正则表达式:对匹配组执行操作