2014-12-05 4 views
0

내가 만든 CSV 파일이 있습니다. 데이터를 가져온 다음 특정 데이터에 대한 검사를 실행하려고합니다.CSV 데이터를 추출하고 비교하지만 작동하지 않습니다. Java

CSV 파일 내용입니다.

"12/05/14","Hay Square","10.00","10","","","" 
"12/05/14","Hay Round","75","1","","","" 
"12/05/14","Feed","12.50","10","","","" 
"12/05/14","Feet","10","","trusty","","" 
"12/05/14","Feed","4","5","","","" 
"12/05/14","Wormer","12.75","","trusty","","" 
"12/05/14","Feed","12","10","","","" 
"","Feed","","","","","" 
"12/05/14","Medicine","124.85","","sunny","","" 
"12/05/14","Feet","90","","speedy","","" 

기본 코드를 사용하고 있으며 인쇄물이 제대로 인쇄되어 인쇄되지만 if 문과 VIA를 비교하지는 않습니다. 나는 도처에서 수색했으며 아무 것도 발견하지 못했습니다. 이상하게 생각합니다. 일반적으로 생각합니다.

코드에서 알 수 있듯이 단순히 "피드"를 찾고 인쇄하고 싶습니다. 이것은 더 큰 프로젝트를위한 테스트 코드 일 뿐이므로 이것은 매우 미완성이다.

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

public class ReadCSV { 

    public static void main(String[] args) { 

    ReadCSV obj = new ReadCSV(); 
    obj.run(); 

    } 

    public void run() { 

    String csvFile = "c:/horse/horsespending.csv"; 
    BufferedReader br = null; 
    String line = ""; 
    String cvsSplitBy = ","; 

    try { 

     br = new BufferedReader(new FileReader(csvFile)); 
     while ((line = br.readLine()) != null) { 

       // use comma as separator 
      String[] country = line.split(cvsSplitBy); 
      String test = country[1].toString(); 
      String tester = "\"Feed\""; 
      System.out.println("check " + country[1]); 
      if(test == tester){ 
      System.out.println("found");    
      } 
     } 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (br != null) { 
      try { 
       br.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    System.out.println("Done"); 
    } 

     } 

출력 :

check "Purchase" 
check "Hay Square" 
check "Hay Round" 
check "Feed" 
check "Feet" 
check "Feed" 
check "Wormer" 
check "Feed" 
check "Feed" 
check "Medicine" 
check "Feet" 
Done 

답변

0

사용하는 대신, ==와 함께 자바에서 문자열을 비교하지 않습니다

test.equals(tester) 
+0

오크 원유! 나는 그것을 읽었지 만 그것이 내가해야 할 필요가 있다고 생각하지는 않았다. 감사 !!! – reddragon72

0

을 문자열은 객체가 자바를 입력하기 때문에, 사용 .equals() == 대신에 프리미티브에 대해 생각하고 있습니다!

testString.equals(toCompareToString) //boolean return 

행복한 코딩! Doc's to Java string lib

+0

위와 동일합니다. 나는 그것을 읽었다. 그러나 웬일인지 나는 나의 경우에 적합하다고 생각하지 않았다! 아직도 배우기, 자기가 대학을 시작할 때까지 여기에서 가르쳤다. 그리고 링크에 감사드립니다! – reddragon72

+0

Forsure !!! 내가 도울 수있어서 기뻐. 같은 배, 배울 것이 많으므로 앞으로 친구를 눌러라! – RedKlouds

관련 문제