在J2ME中用字符串替换单个字符

时间:2016-01-05 06:03:41

标签: java-me

我想替换用户输入的部分来构建url,我编写代码但是它仍然不起作用,帮助plz .....

这就是我所说的:

       newUrl = url +"?user="+ index +"&company="+   urlEncoder(BetTxt2.getString()) +"&date="+ urlEncoder(BetTxt1.getString());

这是替换方法:

 public static String urlEncoder (String s) {
   StringBuffer sbuf = new StringBuffer(s);
   int len = s.length();
   for (int i=0; i<len; i++) {
       int ch = s.charAt(i);
       switch (ch) {
           case '#':
               sbuf.append("%23");
               break;
           case '+':
               sbuf.append("%2B");
               break;
           case '*':
               sbuf.append("%2A");
               break;
           default:
               sbuf.append(ch);
               break;
       }


   }
   return sbuf.toString();

}

2 个答案:

答案 0 :(得分:0)

以下是我的方法的修改(你应该更改charNew的名字),它改变char的char:

public String replaceChar(String text, char charReplace, String charNew)
{
    String newString = "";
    for(int i = 0; i < text.length(); i++)
    {
       // System.out.println("char at " + i + " is " + text.charAt(i));
        if(text.charAt(i) == charReplace)
        {
            newString += charNew;
        }
        else
        {
            newString += text.charAt(i);
        }
    }
    return newString;
}

答案 1 :(得分:0)

我找到了here下方的代码,您可能需要查看ascii table以便更好地理解。

public static String URLencode(String s)
{
    if (s!=null) {
        StringBuffer tmp = new StringBuffer();
        int i=0;
        try {
            while (true) {
                int b = (int)s.charAt(i++);
                if ((b>=0x30 && b<=0x39) 
                    || (b>=0x41 && b<=0x5A) 
                    || (b>=0x61 && b<=0x7A)) 
                {
                    tmp.append((char)b);
                }
                else {
                    tmp.append("%");
                    if (b <= 0xf) 
                        tmp.append("0");
                    tmp.append(Integer.toHexString(b));
               }
            }
        }catch (Exception e) {}
        return tmp.toString();
    }
return null;
}