黑莓方法替换字符串?

sex*_*ner 2 java eclipse blackberry java-me

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

  1. 我从IOUtilities.streamToBytes(httpInput)回来的回复; call包含"<" 字符.那么我可以使用什么黑莓类/方法来取代我的"<" 用"<"?String类中只有1个replace()方法,该方法只能用另一个字符替换1个字符.再次,由于这是一个黑莓项目,我无法访问java 1.4以上的任何内容

  2. 我也从我的IOUtilities.streamToBytes(httpInput)回来的回复; 呼叫从通常的肥皂响应开始"<?xml version ="1.0"encoding ="utf-8"?> <string xmlns ="http://www.mydomain.com">".任何黑莓类/方法,我可以用来告诉程序只返回"<?xml version ="1.0"encoding ="utf-8"?> <string xmlns ="http://www.mydomain.com之间的所有内容">"和"</ string>"?

再次感谢大家的帮助.非常感激.我开始了解到,在黑莓环境中进行开发有时会有点单调乏味,因为某些java类(可以使编码更容易)无法使用.

Law*_*Dol 5

您遇到的情况是被迫使用基于早期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;
    }
Run Code Online (Sandbox Code Playgroud)

至于问题的第二部分,您需要使用XML解析器来提取所需的信息.否则你将参加一些(可能是kludgy)手工工作.

快速浏览CLDC表明它可能基于Java 1.1(唉!).DigiLife有一个PDF文档,其中包含有关J2ME的更多信息.

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

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