使用基于用户输入发出HTTP请求的Android应用程序。
我希望在HTTP请求中实现以下String:
The%20Cat%20Sat
EditText的用户输入:
The Cat Sat
我理解字符串需要拆分并放入一个数组中,但是在每个输入的单词之后它必须接受%20,然后再转换回字符串。
任何指导都会很棒!
答案 0 :(得分:1)
您可以使用此方法,它依赖于URLEncoder类:
public static String urlEncodeString(String s){
try {
return URLEncoder.encode(s,"UTF-8");
}
catch ( UnsupportedEncodingException e) {
return s;
}
}
答案 1 :(得分:0)
你可以a)unescape字符串。
java.net.URLDecoder.decode("The%20Cat%20Sat", "UTF-8");
或删除%20并将其拆分。
String[] array = "The%20Cat%20Sat".split("%20");
然后当你回来时
for (String str : array) {
str.replace("%20", "");
}
或替换all并使用以下内容替换空格:
"The%20Cat%20Sat".replaceAll(" ","%20");
但你应该考虑使用解码和编码,这在大多数情况下是正确的方式。
答案 2 :(得分:0)
使用URLEncoder.encode()和URLDecoder.decode()使HTTP URL的用户输入安全,反之亦然。记住它不仅是你必须担心的空间,而是特殊的角色。 URLEncoder是唯一安全的方法!
答案 3 :(得分:0)
您可以用%20替换字符串的空格以获得所需的输出。
String myString = myEditText.getText().toString();
myString=myString.replaceAll(" ","%20");