我想替换用户输入的部分来构建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();
}
答案 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;
}