使用基於用戶輸入發出HTTP請求的android應用程序。將字符串拆分爲數組,將其添加到數組然後再轉換爲字符串
我想達到下面的字符串作爲HTTP請求的一部分:對一個EditText
The%20Cat%20Sat
用戶輸入:
The Cat Sat
我理解的字符串需要被分割並放入數組,然而它必須在每個輸入的單詞之後接受%20,然後再轉換回字符串。
任何指導將是偉大的!
使用基於用戶輸入發出HTTP請求的android應用程序。將字符串拆分爲數組,將其添加到數組然後再轉換爲字符串
我想達到下面的字符串作爲HTTP請求的一部分:對一個EditText
The%20Cat%20Sat
用戶輸入:
The Cat Sat
我理解的字符串需要被分割並放入數組,然而它必須在每個輸入的單詞之後接受%20,然後再轉換回字符串。
任何指導將是偉大的!
您可以使用此方法,它依靠的URLEncoder類:
public static String urlEncodeString(String s){
try {
return URLEncoder.encode(s,"UTF-8");
}
catch ( UnsupportedEncodingException e) {
return s;
}
}
你可以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", "");
}
或全部更換,並通過使用一個空格替換:
"The%20Cat%20Sat".replaceAll(" ","%20");
,但你應該考慮使用解碼和編碼這是在大多數情況下是正確的做法。
使用URLEncoder.encode()和URLDecoder.decode()用於使用戶輸入對HTTP URL的安全,反之亦然。請記住,這不僅是你必須擔心的空間,而且也是特殊的角色。 URLEncoder是唯一安全的方式!
您可以用%20替換字符串的空格以獲得所需的輸出。
String myString = myEditText.getText().toString();
myString=myString.replaceAll(" ","%20");
爲什麼要分割字符串數組?您可以像這樣對用戶輸入進行編碼。 String query = URLEncoder.encode(「Cat Sat」,「utf-8」); String url =「http://stackoverflow.com/search?q=」+ query ;.看看這個答案[鏈接](http://stackoverflow.com/a/3286128/3512164) – 2015-04-02 17:25:49
我不知道你可以編碼一個字符串爲utf-8。謝謝! – carteruk 2015-04-08 16:12:49