将字符串拆分为数组,添加到数组然后转换回字符串

Split String to Array, add to Array then convert back to String

正在开发基于用户输入发出 HTTP 请求的 android 应用程序。

我想将以下字符串作为 HTTP 请求的一部分:

The%20Cat%20Sat

EditText 的用户输入:

The Cat Sat

我知道字符串需要拆分并放入一个数组中,但是它必须在每个输入的单词之后接受 %20,然后再转换回字符串。

任何指导都会很棒!

您可以 a) 取消转义字符串。

java.net.URLDecoder.decode("The%20Cat%20Sat", "UTF-8");

或删除 %20 并将其拆分。

String[] array = "The%20Cat%20Sat".split("%20");

然后当你取回它时

for (String str : array) {
    str.replace("%20", "");
}

或全部替换并替换为 space,方法是:

"The%20Cat%20Sat".replaceAll(" ","%20");

但您应该考虑使用解码和编码,这在大多数情况下是正确的做法。

使用 URLEncoder.encode() and URLDecoder.decode() 使用户输入对于 HTTP URL 是安全的,反之亦然。请记住,您不仅要担心空格,还要担心特殊字符。 URL编码器是唯一安全的方式!

您可以将字符串中的空格替换为 %20 以获得所需的输出。

String myString = myEditText.getText().toString();
myString=myString.replaceAll(" ","%20");

你可以使用这个方法,它依赖于URLEncoder class:

public static String urlEncodeString(String s){
   try {
       return URLEncoder.encode(s,"UTF-8");
   }
   catch (  UnsupportedEncodingException e) {
       return s;
   }
}