您遇到的問題是基於早期的J2SE版本被迫使用J2ME配置文件。
我有一個替換實用程序方法,用於定位早期平臺時編寫的字符串,這可能對您有用。但請注意,你真正想要的是一個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解析器來提取所需的信息。否則,你將進行一些(可能是kludgy)手動工作。
快速瀏覽CLDC表明它可能基於Java 1.1(唉!)。 DigiLife有一個PDF document,它有更多關於J2ME的良好信息。
瞭解哪個配置(CDC或CLDC)以及您所指向的配置文件(MIDP或PP)對了解哪些API可用至關重要。並且請注意,即使您在J2SE 1.4上使用基於的文件,它可能會丟失各種類和方法,包括各種XML解析包。因此,您可能需要自己從第三方提供替代品(或自己寫)。
編輯:我注意到BlackBerry V5 doco包括XML解析器包。
對於一些缺少字符串函數提供的功能,請告訴我們的J2ME版本你的黑莓。這些在設置/選項/關於。例如,我的是:CLDC 1.1與MIDP 2.0。 – 2010-02-04 19:10:19
我使用日食伽利略和使用黑莓JRE 5.0.0。順便說一句,Eclipse將「默認合規性級別」設置爲1.4。如果我將它設置爲1.5和1.6,我會在應用程序的一開始就會發現「NoClassDefinition found」錯誤。 – sexitrainer 2010-02-04 19:31:39
這並沒有告訴我們您所定位的J2ME版本(配置和配置文件)。配置和配置文件的組合決定了你可以使用的API;例如,Personal Profile 1.0基於Java 1.2,而Personal Profile 1.1則基於Java 1.4。這意味着PP 1.1是一個精簡版的J2SE 1.4 - 你會驚訝於缺少多少東西。 – 2010-02-04 23:24:09