Java扫描器多个/多个分隔符条件

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

我在使用扫描仪和分隔符找到仅获取城市 1、城市 2 和没有“公里”的距离的正确方法时遇到问题。我需要将文本设为粗体。
字符串(示例):

城市1,国家; 城市2,国家; 145公里

到目前为止我的分隔符因为我真的不知道:

scanner.useDelimiter(";");

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

我应该先把它分成三部分吗?并为每个部分做一个新的分隔符?或者有更简单的方法吗?

提前致谢

(编辑以解释与另一篇文章的差异: 我用正则表达式尝试过,但也没有运气。我需要将字符串拆分到不同字符的多个位置。如果我能够通过另一篇文章解决这个问题,我就不会提出问题。)

最佳答案

您可以结合使用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]);
}

关于Java扫描器多个/多个分隔符条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45677332/

相关文章:

ios - UISlider.value 逻辑/条件

python - 有没有办法用 numpy 向量化条件和?

java - 在 kb.nextInt() 中找不到符号;

java - Hibernate 搜索查询?

java - 根据 JTA 标准,应该从事务方法中抛出哪个异常?

java - 访问/sdcard/udisk 中的文件会返回权限被拒绝。 file.exists() 始终返回 false

java - java中.split()方法如何工作?

java - 如何使用 Scanner 处理无效输入(InputMismatchException)引起的无限循环

loops - Lisp - 标志(bandera)不起作用

java - neo4j Cypher 查询 - 仅更新更改的字段