""的 Java Scanner.useDelimiter() 问题

标签 java java.util.scanner

我在使用 Java Scanner.useDelimiter() 分隔“”时遇到问题。

我正在尝试使用扫描仪读取 CSV 文件。CSV 有 2 列(名称、描述),描述字段有很长的段落(带有 , 和 .)

我想知道这种情况的分隔符是什么。

最佳答案

怎么样

Scanner s = new Scanner("name1 lorem, some description\n" +
                        "name2 ipsum, some other, description \n" +
                        "name3 dolor, a third. description\n");

while (s.hasNextLine()) {
    String[] cols = s.nextLine().split(",", 2); // limit to two columns.
    System.out.println("col1: " + cols[0] + ", col2:" + cols[1]);
}

打印:

col1: name1 lorem, col2: some description
col1: name2 ipsum, col2: some other, description 
col1: name3 dolor, col2: a third. description

或者,如果你一直坚持使用 Scanner,你可以做类似的事情

Scanner s = new Scanner("name1 lorem, some description\n" +
                        "name2 ipsum, some other, description \n" +
                        "name3 dolor, a third. description\n");

s.useDelimiter(",");

while (s.hasNext())
    System.out.println("col1: " + s.next() + ", col2:" + s.skip(",").nextLine());

(产生相同的输出。)

关于 ""的 Java Scanner.useDelimiter() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3828377/

相关文章:

java - Play Framework 注入(inject)错误

java - 匹配 "| "的正则表达式

java - 与记事本不同,在线 Java 编译器上运行代码时出现异常

java - 我应该出于什么原因 mock ?

java - 阻塞队列的实现

Java 为抽象类声明类吗?

java - 无需配对即可连接到 BLE 信标

java - 在 java 中,当我输入一个有 10 个零的数字时,出现错误

java - 如何使用正则表达式从字符串中删除外部标点符号

java - 如何正确打开新的扫描仪并接受输入