搜索文本文件并打印Java

时间:2013-11-22 18:06:45

标签: java loops search csv joptionpane

我试图在csv文件中搜索特定的字符串。我想打印出csv中csv中有特定模块的所有条目,但我似乎无法使其正常工作。也可以在一个JOptionPane窗口中打印输出,而不是为每个结果打印出不同的窗口。

Csv格式

12175466,C98754,B

12141895,CS40​​54,B

12484665,CS3054,B

18446876,CS1044,B

用户输入:CS4054

期望的结果:12141895,CS40​​54,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();  

2 个答案:

答案 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 );