可以使用拆分功能
提取String中的特定项目例如:
offers/BESTOFFERS/FRTNE/FRPAR/2015-01-05?passengers=STANDARD:1&returnDate=2015-01-12&maxVia=0&withThac=false
我想只提取returnDate
ouptut我想要的原因:
2015-01-12
OR
我想只提取passengers
ouptut我想要的原因:
标准:1
答案 0 :(得分:1)
如果你真的需要坚持使用分割方法,你可以解决它,例如像
String str = "offers/BESTOFFERS/FRTNE/FRPAR/2015-01-05?passengers=STANDARD:1&returnDate=2015-01-12&maxVia=0&withThac=false";
int paramDelim = str.indexOf('?');
String parmeters = str.substring(paramDelim + 1, str.length());
String[] parts = parmeters.split("[&=]");
System.out.println("parts = " + Arrays.toString(parts));
parts
包含参数名称(奇数条目)和值(偶数条目)。
如果您不需要坚持使用拆分方法,请尝试使用其中一个建议的URL解析器解决方案。
答案 1 :(得分:0)
您还可以尝试以下使用HashMap的方法
void populateMap()
{
Map<String, String> myMap = new HashMap<String, String>();
String uri = "offers/BESTOFFERS/FRTNE/FRPAR/2015-01-05?passengers=STANDARD:1&returnDate=2015-01-12&maxVia=0&withThac=false";
int len = uri.indexOf('?');
String input = str.substring(len + 1, uri.length());
for(String retVal : input.split("&")
{
String[] innerRet = retVal.split(":");
myMap.put(innerRet[0],innerRet[1]);
}
}
String retValue (String key)
{
return myMap.get(key);
}
答案 2 :(得分:-1)
String str = "offers/BESTOFFERS/FRTNE/FRPAR/2015-01-05?passengers=STANDARD:1&returnDate=2015-01-12&maxVia=0&withThac=false";
String returnDate = str.split("&")[1].replaceAll
("returnDate=","").trim();
String passengers= str.split("?")[1].split("&")[0].replaceAll
("passengers=","").trim();