java - 如何使用分隔符找到行尾?

标签 java regex java.util.scanner delimiter

我正在尝试读取此模式... Scanner.useDelimiter 是什么?为此?

此输入是:

489 490-1; 491-1; 492-1; 493-1; 494-1; 495-1; 496-1; 497-1; 498-1; 499-1; 500-1;
490 491-1; 492-1; 493-1; 494-1; 495-1; 496-1; 497-1; 498-1; 499-1; 500-1;
491 492-1; 493-1; 494-1; 495-1; 496-1; 497-1; 498-1; 499-1; 500-1;
492 493-1; 494-1; 495-1; 496-1; 497-1; 498-1; 499-1; 500-1;
493 494-1; 495-1; 496-1; 497-1; 498-1; 499-1; 500-1;
494 495-1; 496-1; 497-1; 498-1; 499-1; 500-1;
495 496-1; 497-1; 498-1; 499-1; 500-1;
496 497-1; 498-1; 499-1; 500-1;
497 498-1; 499-1; 500-1;

我需要的是将 489, 490, 491 放入一个控件数组中,并将 490 ,1 ,491, 1(第二列和它们)放入一个集合中。

我尝试了这个分隔符,但它不起作用:
Scanner(readerFile).useDelimiter("[^0-9]+");

因为他一直在我的 while(readerFile.hasNextInt()) 中循环并且不要调用 nextLine()函数,读取集合中的所有输入。

while (readerFile.hasNextLine()){
   readerFile.nextLine();
   vector[i] = readerFile.nextInt();
   while (readerFile.hasNextInt()){
       linkedList.add(reader.nextInt());
   }
}

如何控制下一行?

最佳答案

我可能会这样做:

伪代码:

While has next line
    s = next line
    split = s.split(" ", 2);
    vector[i] = split[0]; // or whatever you want to do with the first value
    values = split[1].split(";")
    foreach value in values
        linkedList.add(value); // or whatever you want to do with the rest of the values

关于java - 如何使用分隔符找到行尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29739353/

相关文章:

c++ - 在 C++ 应用程序的使用中需要对数组、 vector 和映射进行说明

java - 尝试获取可序列化对象的输入时出现 NullPointerException

java - 如何接受输入并使程序打印出新行上的每个字母,同时使遇到的每个空格打印出 "<space>"?

java - 接下来用Java Scanner读取文本(Pattern模式)

Java mailto 非法字符冒号?

java - 如何知道所需的核心数和内存数?

java - AtomicBoolean.set(flag) 和 AtomicBoolean.compareAndSet(!flag, flag) 有什么区别?

javascript - 删除所有网页文本内容只保留 HTML?

java - 交换数组的两个部分的位置

Javascript正则表达式获取类名