![](/img/trans.png)
[英]How to split the string using '^' this special character in java?
[英]Android java split string via special character fails
我想将平台参数附加到 url 与?
如果 url 没有查询字符串并且使用&
如果 url 有查询字符串
所以我添加了以下内容
String api_url;
//costructor next to assign apiurl value
//method to extract url and process request
processData(){
String apiUrl = "";
String[] urlParams = this.api_url.split("\\?");
if (urlParams.length > 0){
apiUrl = this.api_url+"&platform="+tokenService.getToken(AppDetailsHelpers.AppSettingsKeys.PLATFORM);
}else {
apiUrl = this.api_url+"?platform="+tokenService.getToken(AppDetailsHelpers.AppSettingsKeys.PLATFORM);
}
}
即使urlParams
不包含?
url 示例
http://test.com
用上面的代码解决为
http://test.com&platform=12
但我希望它是http://test.com?platform=12
我试过添加
String[] urlParams = this.api_url.split("?");
但它会抛出Dangling metacharacter
的错误。 我错过了什么。 为什么会失败。
这是String#split
的预期行为。 运行"http://test.com".split("\\?")
返回一个包含一个元素"http://test.com"
的数组。 因此,只需将您的条件更新为if(uriParams.length > 1)
。
您还可以考虑将您的 String 解析为 Uri,因为您可能不需要此检查,而可以使用:
Uri.parse(api_url)
.buildUpon()
.appendQuery("platform", tokenService.getToken(AppSettingsKeys.PLATFORM))
.build().toString();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.