Java 在j2me中用字符串替换字符串

Java 在j2me中用字符串替换字符串,java,java-me,replace,Java,Java Me,Replace,当使用下面的代码将字符串替换为字符串时,我在netbeans中发现错误找不到符号 public String urlEncode(String msg) { if (msg != null) { msg=msg.replaceAll(" ","%20"); } return msg; } 需要帮助 您确实需要使用自己的方法来处理URL编码吗? 只需使用URLEncoder.encode(字符串s,字符串enc) 您

当使用下面的代码将字符串替换为字符串时,我在netbeans中发现错误
找不到符号

public String urlEncode(String msg) {

        if (msg != null) {
           msg=msg.replaceAll(" ","%20");
        }
        return msg;
    }

需要帮助

您确实需要使用自己的方法来处理URL编码吗? 只需使用URLEncoder.encode(字符串s,字符串enc)


您是否确实需要使用自己的方法来处理URL编码? 只需使用URLEncoder.encode(字符串s,字符串enc)


使用以下代码

private String replace(String needle, String replacement, String haystack) {
    String result = "";
    int index = haystack.indexOf(needle);
    if(index==0) {
        result = replacement+haystack.substring(needle.length());
        return replace(needle, replacement, result);
    }else if(index>0) {
        result = haystack.substring(0,index)+ replacement +haystack.substring(index+needle.length());
        return replace(needle, replacement, result);
    }else {
        return haystack;
    }
}

使用以下代码

private String replace(String needle, String replacement, String haystack) {
    String result = "";
    int index = haystack.indexOf(needle);
    if(index==0) {
        result = replacement+haystack.substring(needle.length());
        return replace(needle, replacement, result);
    }else if(index>0) {
        result = haystack.substring(0,index)+ replacement +haystack.substring(index+needle.length());
        return replace(needle, replacement, result);
    }else {
        return haystack;
    }
}

replaceAll是在Java1.4中引入的,我认为J2ME仅限于1.3。您必须使用更高版本的JDK进行编译,这就是运行时出现符号错误的原因


URLEncoder.encode(字符串s)可能是您的最佳选择。不幸的是,Xeon建议的URLEncoder.encode(String s,String enc)也是一个JDK1.4 API调用。

replaceAll是在Java 1.4中引入的,我认为J2ME仅限于1.3。您必须使用更高版本的JDK进行编译,这就是运行时出现符号错误的原因


URLEncoder.encode(字符串s)可能是您的最佳选择。不幸的是,正如Xeon所建议的那样,URLEncoder.encode(String s,String enc),也是一个JDK1.4 API调用。

尝试在project mobile client下发布的适用于JavaMe的
URLEncoder
的改编版本。

尝试在project mobile client下发布的适用于JavaMe的
URLEncoder
的改编版本。

我创建了以下用另一个字符串替换字符串的方法

private String replace( String str, String pattern, String replace ) 
{
    int s = 0;
    int e = 0;
    StringBuffer result = new StringBuffer();

    while ( (e = str.indexOf( pattern, s ) ) >= 0 ) 
    {
        result.append(str.substring( s, e ) );
        result.append( replace );
        s = e+pattern.length();
    }
    result.append( str.substring( s ) );
    return result.toString();
}   

我创建了以下用另一个字符串替换字符串的方法

private String replace( String str, String pattern, String replace ) 
{
    int s = 0;
    int e = 0;
    StringBuffer result = new StringBuffer();

    while ( (e = str.indexOf( pattern, s ) ) >= 0 ) 
    {
        result.append(str.substring( s, e ) );
        result.append( replace );
        s = e+pattern.length();
    }
    result.append( str.substring( s ) );
    return result.toString();
}   

您应该使用StringBuffer,而不是用加号连接字符串。加号会对内存造成可怕的影响。@DumpHole:StringBuilder是一个更好的选择,因为不需要同步。此外,编译器将运行时相关的连接转换为使用StringBuilder的代码。它可能并不总是最优的,但我认为在这种情况下串联工作很好。@JeremyHeiler:StringBuilder在J2ME中不受支持。我会选择另一个答案,它使用StringBuffer。@DumpHole:哇,我感觉像个傻瓜。我想从现在起我将忽略JavaMe标记。。。LOL您应该使用StringBuffer,而不是用加号连接字符串。加号会对内存造成可怕的影响。@DumpHole:StringBuilder是一个更好的选择,因为不需要同步。此外,编译器将运行时相关的连接转换为使用StringBuilder的代码。它可能并不总是最优的,但我认为在这种情况下串联工作很好。@JeremyHeiler:StringBuilder在J2ME中不受支持。我会选择另一个答案,它使用StringBuffer。@DumpHole:哇,我感觉像个傻瓜。我想从现在起我将忽略JavaMe标记。。。英雄联盟