如何从字符串中提取值

时间:2016-12-27 05:25:08

标签: java string string-matching

我有一个包含此值的变量

<NewDataSet> <Table> <AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>

如何从中提取国家/地区代码,在本例中为733.国家/地区代码可能不同,因此我需要以某种方式获取<CountryCode>旁边和</CountryCode>之前的值

3 个答案:

答案 0 :(得分:3)

在这里,您可以轻松使用JDOM,Xerces DOMParser或JAXP接口来解析您的提供文件正在接收变量,或者您可以保存在XML文件中以读取此文件。而且我认为你的提供文件并不完全像XML这样的格式,所以我提供了子字符串方法来找到你想要的结果。

/**
*
* @author mahsin
* @date 27-12-2016
*/
public class Main{
public static void main(String args[]){
    String testText = "<NewDataSet> <Table> <AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>";
    String countryCode = testText.substring("<CountryCode>".length() + testText.indexOf("<CountryCode>"),  testText.indexOf("</CountryCode>"));
    System.out.println(countryCode);
}
}

答案 1 :(得分:-1)

您应该将Java DOM解析器与Xpath结合使用。有了它,你不仅可以获得国家代码,还可以获取xml中的其他值,如机场代码,CityAirportName等。 有关代码的示例,请查看此站点:https://www.tutorialspoint.com/java_xml/java_xpath_parse_document.htm

答案 2 :(得分:-2)

这看起来像部分xml文本,因为缺少一些结束标记。 如果你有完整的xml文本,那么我建议你使用像Dom parser for xml这样的xml解析器。

否则你可以做这样的事情

String countryCode = xmlText.substring("<CountryCode>".length() + xmlText.indexOf("<CountryCode>"),  xmlText.indexOf("</CountryCode>"));
System.out.println(countryCode);