如何使用分隔符查找行尾?

时间:2015-04-20 04:29:20

标签: 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());
   }
}

如何控制下一行?

1 个答案:

答案 0 :(得分:1)

我可能会这样做:

伪代码:

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