gpt4 book ai didi

java - 有没有一种干净的方法来检查一个字符串是否包含另一个字符串中的字符

转载 作者:行者123 更新时间:2023-11-30 06:18:24 24 4
gpt4 key购买 nike

我目前正在尝试从 URL 捕获特殊字符,将其更改为十六进制值(例如:“This shop”应转换为“This%20shop”)。
我想知道是否有一些干净的方法来查看字符串以找到每个特殊字符并将它们替换为它们的 ascii 值。我尝试这样做是因为我必须使用 GET 将 PHP 参数传递到 url 中。

这是一个 url 的示例:www.mysite.com/page?adress=我住在这里!


我的代码实际上从 URL 中替换了“%”和“”,但我想更改我定义的任何特殊字符。这就是我到目前为止所做的:

private final String specialChars = "!@\\[]`#$%&'()*+-<>=?";
public URL getURL(){
String tempUrl = baseURL;
Set<String> keys = this.arguments.keySet();
for (Map.Entry<String, String> 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;
}

据我了解String documentation ,只有当我的 URL 与我的specialChars charSequence 完全匹配时,matches 方法才应返回 true,这不是我想要的。但我找不到任何其他方法来完成我想要在 String documentation 上实现的目标.

最佳答案

如果您只是想处理 url 编码,则有现有的解决方案 - 请参阅 URLEncoderURLDecoder (之前的答案很好here)

关于java - 有没有一种干净的方法来检查一个字符串是否包含另一个字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com