在j2me中用string替换字符串

时间:2012-05-16 20:58:08

标签: java java-me replace

我在netbeans中收到错误cannot find symbol,而使用下面的代码用字符串替换字符串。

public String urlEncode(String msg) {

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

需要帮助!!

5 个答案:

答案 0 :(得分:7)

我创建了以下方法,用另一个String替换String。

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();
}   

答案 1 :(得分:3)

使用以下代码

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;
    }
}

答案 2 :(得分:2)

在项目code.google.com移动客户端下的JibLib上发布适用于JavaMe的URLEncoder的改编版本。

答案 3 :(得分:0)

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

  @param   s  String to be translated.
  @param   enc   The name of a supported
  @return  the translated String.

答案 4 :(得分:0)

replaceAll是在Java 1.4中引入的,我认为J2ME仅限于1.3。您必须使用以后的JDK进行编译,这就是您在运行时遇到符号错误的原因。

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