Java scanner multiple/several 分隔符条件
Java scanner multiple/several delimiter conditions
我在使用扫描仪和定界符找到仅获取城市 1、城市 2 和没有 "km" 的距离的正确方法时遇到了问题。我需要以粗体显示文本。
字符串(示例):
城市 1,国家; 城市2,国家; 145公里
到目前为止我的 Delimitar 因为我真的不知道:
scanner.useDelimiter(";");
我也尝试过使用 string.split("") 但没有成功。
我是否应该先把它分成 3 个部分放在“;”上?并为每个部分做一个新的分隔符?或者有更简单的方法吗?
提前致谢
(编辑以向另一个 post 解释差异:
我用正则表达式试过,也没有运气。我需要在不同字符的多个位置拆分字符串。如果我能用另一个 post.)
解决问题,我不会问
你可以试试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.]", "");
您可以使用 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]);
}
我在使用扫描仪和定界符找到仅获取城市 1、城市 2 和没有 "km" 的距离的正确方法时遇到了问题。我需要以粗体显示文本。
字符串(示例):
城市 1,国家; 城市2,国家; 145公里
到目前为止我的 Delimitar 因为我真的不知道:
scanner.useDelimiter(";");
我也尝试过使用 string.split("") 但没有成功。
我是否应该先把它分成 3 个部分放在“;”上?并为每个部分做一个新的分隔符?或者有更简单的方法吗?
提前致谢
(编辑以向另一个 post 解释差异: 我用正则表达式试过,也没有运气。我需要在不同字符的多个位置拆分字符串。如果我能用另一个 post.)
解决问题,我不会问你可以试试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.]", "");
您可以使用 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]);
}