我有"Bus is from bangalore to chennai on 02/11/2017"
这样的文字。通过使用substring
需要获取班加罗尔和钦奈的文本。
但这些都是动态的,有时这可能会像德里或孟买一样变化。
答案 0 :(得分:0)
如果您的城市一个字,那么您可以使用split
,您可以获取具有索引或位置的城市名称,例如:
public static void main(String[] args) {
String str = "Bus is from bangalore to chennai on 02/11/2017";
String[] x = str.split(" ");
System.out.println(x[3]);
System.out.println(x[5]);
}
这将返回:
bangalore
chennai
如果您不确定,那么可以使用正则表达式:
//this get the city between `from` and `to`
String regexString = Pattern.quote("from ") + "(.*?)" + Pattern.quote(" to");
Pattern pattern = Pattern.compile(regexString);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
//this get the city between ` to` and ` on`
regexString = Pattern.quote("to ") + "(.*?)" + Pattern.quote(" on");
pattern = Pattern.compile(regexString);
matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
如果你的字符串是这样的:
str = "Bus is from bangalore city to chennai city on 02/11/2017";
这将返回:
bangalore city
chennai city
如果您不确定您的String应该是什么样子,那么您可以按照@AhmadWabbi的注释来定义您的城市名称,然后您应该循环抛出您的字符串并扣除名称在您的列表与否。