如何在具有特定值的文件中查找和读取行?

时间:2014-09-01 19:06:02

标签: java file csv

我有一个输入文本文件,格式如下:

11111, "Top Secret Twenty One - Janet Evanovich", 8.99
22222, "W Is For Wasted - Sue Grafton", 9.95
33333, "Gray Mountain - John Grisham", 14.95
44444, "Revival - Stephen King", 12.95

我怎样才能阅读" 1111" "最高机密二十一 - 珍妮特埃万诺维奇"和" 8.99"作为单独的变量没有引号和逗号?

我基本上试图在文件中搜索bookID(又名" 11111")。

1 个答案:

答案 0 :(得分:0)

这是我在课堂上学到的方式:

import java.util.*; // for the scanner
import java.io.*; // for the object

File f = new File("<filename>");
Scanner input = new Scanner(f);

input.useDelimiter(",|\"|\n"); // delimiters are commas, quotes, and newlines

input.nextInt(); //reads 1111 as an integer
input.next(); // reads the empty space (needed because " " wasn't declared as a delimiter)
input.next(); // reads in Top Secret Twenty One - Janet Evanovich as a String.
input.next(): // reads in the empty space
input.nextDouble(); // reads in 8.99 as a double

要更改Java的默认分隔符(空格,制表符,换行符),我使用了以下内容:

Scannervariable.useDelimiter(”,| \ “| \ n”);

此命令使用逗号,引号和换行符作为分隔符,忽略它们并移动到下一个标记。 |意思是“或”。您可以使用以下扫描仪方法,具体取决于您尝试阅读的内容:

next(),nextInt(),nextDouble()或nextLine()

您可以在线查找每种方法的确切功能。