2013-11-22 109 views
0

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

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

您的意思是使用startswith?也许尝试包含。

这个怎么样?

String theAnswer=""; 
if (line.contains(stringToSearch)) { 
    theAnswer += line +"\n"; 
}  
JOptionPane.showMessageDialog(null, theAnswer);   
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); 
相关问题