我有一个问题,就是找到一个正确的方法,只使用扫描仪和分隔符获取city1,city 2和没有" km"的距离。我需要以粗体显示文本 字符串(示例):
city1 ,国家/地区; city2 ,国家/地区; 145 km
到目前为止,我的Delimitar因为我真的不知道:scanner.useDelimiter(";");
我也尝试过使用string.split("")但没有成功。
我应该先在&#34 ;;"中将它分成3个部分。并为每个部分做一个新的分隔符?或者有更简单的方法吗?
提前致谢
(编辑解释与另一篇文章的区别: 我用正则表达式尝试过,也没有运气。我需要在不同字符的多个位置拆分字符串。如果我能用其他帖子解决问题,我不会问一个问题。)
答案 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)
您可以结合使用Scanner
和String#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]);
}