В настоящее время я пытаюсь поймать специальные Chars от URL -адреса, чтобы изменить их на их шестигранное значение (например: «Этот магазин» должен превратиться в «этот%20shop»).
Мне было интересно, было ли какое -то чистое, было в том, чтобы изучить строку, чтобы найти каждый особенный Chars и заменить их на их значения ASCII. />
Здесь был бы примером URL:
www.mysite.com/page?adress=I am Living here!< /code> < /p>
Мой код на самом деле восстанавливает «%» и '' из URL -адресов, но я бы хотел изменить какие -либо специальные Chars, которые я определил.
Это то, что я сделал до сих пор: < /p>
private final String specialChars = "!@\\[]`#$%&'()*+-=?";
public URL getURL(){
String tempUrl = baseURL;
Set keys = this.arguments.keySet();
for (Map.Entry entry : arguments.entrySet()) {
String value = entry.getValue();
if(entry.getValue().contains(specialChars)){
Log.e("INFO", "THIS URL CONTAINS SPECIAL CHARS");
}
//Replacing % char
if(entry.getValue().contains("%")){
Log.i("URL BUILD INFO", "URL ARGS CONTAINS '%'");
value = entry.getValue().replace("%", "%25");
}
//Replacing spaces
if(entry.getValue().contains(" ")){
Log.i("URL BUILD INFO", "URL ARGS CONTAINS SPACE");
value = entry.getValue().replace(" ", "%20");
}
baseURL += entry.getKey() + "=" + value + "&";
}
try{
this.url = new URL(baseURL);
} catch(MalformedURLException e){
Log.e("URL MALFORMED", "YOUR IS MALFORMED");
e.printStackTrace();
}
Log.d("URL IS VALID", url.toString());
return url;
}
< /code>
Из того, что я понял из строковой документации, метод соответствия должен вернуть True только в том случае, если мой URL -адрес точно соответствует моей SpecialChars, что я не хочу. Но я не могу найти какой -либо другой метод, чтобы сделать то, что я пытаюсь достичь в строковой документации.
Подробнее здесь: https://stackoverflow.com/questions/487 ... her-string