2015-04-02 79 views
1

使用基於用戶輸入發出HTTP請求的android應用程序。將字符串拆分爲數組,將其添加到數組然後再轉換爲字符串

我想達到下面的字符串作爲HTTP請求的一部分:對一個EditText

The%20Cat%20Sat 

用戶輸入:

The Cat Sat 

我理解的字符串需要被分割並放入數組,然而它必須在每個輸入的單詞之後接受%20,然後再轉換回字符串。

任何指導將是偉大的!

+0

爲什麼要分割字符串數組?您可以像這樣對用戶輸入進行編碼。 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

+0

我不知道你可以編碼一個字符串爲utf-8。謝謝! – carteruk 2015-04-08 16:12:49

回答

1

您可以使用此方法,它依靠的URLEncoder類:

public static String urlEncodeString(String s){ 
    try { 
     return URLEncoder.encode(s,"UTF-8"); 
    } 
    catch ( UnsupportedEncodingException e) { 
     return s; 
    } 
} 
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", ""); 
} 

或全部更換,並通過使用一個空格替換:

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

,但你應該考慮使用解碼和編碼這是在大多數情況下是正確的做法。

0

使用URLEncoder.encode()URLDecoder.decode()用於使用戶輸入對HTTP URL的安全,反之亦然。請記住,這不僅是你必須擔心的空間,而且也是特殊的角色。 URLEncoder是唯一安全的方式!

0

您可以用%20替換字符串的空格以獲得所需的輸出。

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