我试图在csv文件中搜索特定的字符串。我想打印出csv中csv中有特定模块的所有条目,但我似乎无法使其正常工作。也可以在一个JOptionPane窗口中打印输出,而不是为每个结果打印出不同的窗口。
Csv格式
12175466,C98754,B
12141895,CS4054,B
12484665,CS3054,B
18446876,CS1044,B
用户输入:CS4054
期望的结果:12141895,CS4054,B
public static void DisplayResults() throws IOException
{
String line;
String stringToSearch = JOptionPane.showInputDialog(null, "Enter the module code ");
BufferedReader in = new BufferedReader( new FileReader("StudentResults.csv" ) );
line = in.readLine();
while (line != null)
{
if (line.startsWith(stringToSearch))
{
JOptionPane.showMessageDialog(null, line );
}
line = in.readLine();
}
in.close();
答案 0 :(得分:2)
你的意思是使用startwith吗?也许尝试包含。
这个怎么样?
String theAnswer="";
if (line.contains(stringToSearch)) {
theAnswer += line +"\n";
}
JOptionPane.showMessageDialog(null, theAnswer);
答案 1 :(得分:0)
您的CSV文件具有特定格式:以逗号分隔的值。因此,您可以将每一行拆分为一个数组并检查第二个值。
String[] values = line.split(",");
if(values[1].trim().equals(stringToSearch))
JOptionPane.showMessageDialog(null, line );
修改强> 使用上面的代码,当您确定时,用户始终键入第二个值。如果要搜索所有条目,请使用:
for (String val : values)
if(val.trim().equals(userInput))
JOptionPane.showMessageDialog(null, line );