Java扫描程序多个/几个分隔符条件

时间:2017-08-14 14:53:40

标签: java java.util.scanner conditional-statements delimiter

我有一个问题,就是找到一个正确的方法,只使用扫描仪和分隔符获取city1,city 2和没有" km"的距离。我需要以粗体显示文本 字符串(示例):

city1 ,国家/地区; city2 ,国家/地区; 145 km

到目前为止,我的Delimitar因为我真的不知道:

scanner.useDelimiter(";");

我也尝试过使用string.split("")但没有成功。

我应该先在&#34 ;;"中将它分成3个部分。并为每个部分做一个新的分隔符?或者有更简单的方法吗?

提前致谢

(编辑解释与另一篇文章的区别: 我用正则表达式尝试过,也没有运气。我需要在不同字符的多个位置拆分字符串。如果我能用其他帖子解决问题,我不会问一个问题。)

2 个答案:

答案 0 :(得分:0)

您可以尝试使用String.split()

String data = "city1, country; city2, country; 145 km";
String city1Val = data.split(";")[0].split(",")[0];
String city1Con = data.split(";")[0].split(",")[1];
String city2Val = data.split(";")[1].split(",")[0];
String city2Con = data.split(";")[1].split(",")[1];
String distance = data.split(";")[2];

注意:如果您希望距离为数字,请尝试以下操作,

distance = distance.replaceAll("[^\\d.]", "");

答案 1 :(得分:0)

您可以结合使用ScannerString#split

String source = "city1, country; city2, country; 145 km";
Scanner scanner = new Scanner(source);
scanner.useDelimiter(";");

while (scanner.hasNext()) {
    // trim() removes leading and trailing whitespace
    String line = scanner.next().trim();
    // split the line on either ',' or a space
    String[] split = line.split(",|\\s");
    // print the first word
    System.out.println(split[0]);
}
相关问题