gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 19:09:29 24 4
gpt4 key购买 nike

所以,再一次,由于黑莓的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com