如何使用拆分功能提取特定项目

时间:2015-01-06 11:07:15

标签: java

可以使用拆分功能

提取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

3 个答案:

答案 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();