2017-10-06 101 views
0

我試圖使用Java和A pache commons CSV庫來訪問CSV文件的數據。 我被困在一個問題。 問題是: 「要顯示特定行的數據,如果」名稱「標題等於」rahul「,當我運行代碼時,沒有任何內容被打印出來。使用java和apache commons在CSV文件中搜索「Item」

在exportdata.csv文件中的數據是:

  • 名稱,食品,手機
  • 拉胡爾,大米,9876416884
  • RAM,蛋,8437123456
  • 羅希特,漢堡,9814125755
  • 阿米特,雞,8568934464

而我的代碼是:

public class csvexample { 

public void readfile() 
{ 
    FileResource fr=new FileResource(); 
    CSVParser parser=fr.getCSVParser(); 
    for(CSVRecord record : parser) 
    { 

     String str=record.get("Name"); 
     System.out.println(str); 

     if(str=="rahul") 
     { 
     System.out.print(record.get("Name") + " "); 
     System.out.print(record.get("Phone") + " "); 
     System.out.println(record.get("Food")); 
     }   
    } 
} 

我認爲該錯誤是在線路如果(STR ==「拉胡」),我已檢查該程序不是處理該STR和「拉胡」相同時STR =「拉胡」在的第一次迭代中用於循環

+0

我認爲這可以幫助https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java/513839#513839 – shadowsheep

回答

1

因爲它們是2個不同的String對象,即使它們具有相同的字符。嘗試if ("rahul".equals(str))

+0

Thanxxxx很多......「Dbug」 –

+0

我只是試着給你的解決方案....它工作得很好.... !!! Thanxxx再一次.... !!! –

+0

歡迎,高興地幫助 – DBug

-1

不知道,但你可以試試這個:

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 

public void readFile() { 

    String csvFile = "exportdata.csv"; 
    String line = ""; 
    String cvsSplitBy = ","; 

    try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { 

     while ((line = br.readLine()) != null) { 

      // use comma as separator 
      String[] str = line.split(cvsSplitBy); 
      String name = str[0]; 

      if(name.equals("rahul")){ 
       System.out.print("Name: " + str[0]); 
       System.out.print(" Food: " + str[1]); 
       System.out.println(" Phone: " + str[2]); 
      } 

     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

希望這會幫助你。

+0

Thanxxx ...很多.... !!!我只是想嘗試一下,然後......讓我知道如果我面臨任何困難。 –