CSV

2014-06-06 11 views
6
okurken çift tırnak kaldırma
public class CSVTeast { 
    public static void main(String[] args) { 

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

     } 

     public void run() { 

     String csvFile = "D:\\text.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[] csvRead = line.split(cvsSplitBy); 




       System.out.println("Value [date= " + csvRead[5] 
            + " , name=" + csvRead[9]+"]"); 

      } 

     } 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"); 
     } 


} 

Çıktı Sen String.Replace() yöntemiyle değer geçirerek deneyebilirsinizCSV

Value [date= "POLICY_CHANGE_EFFECTIVE_DATE" , name="AGENCY_NAME"] 

Value [date= "2014-04-01" , name="USI INSURANCE SERVICES]--this value stated with double qoutes but not end with same . 

Beklenen çıkış

Value [date= POLICY_CHANGE_EFFECTIVE_DATE , name=AGENCY_NAME] 

Value [date= 2014-04-01 , name=USI INSURANCE SERVICES] 
+0

Ayrıca csv dosyasının içeriğini yükleyebilir misiniz? – Yasin

+0

@Anandv, çok fazla bir sorun değilse, cevap için bir yardım yardımcı olacaktır, teşekkür ederim :) –

cevap

5

olduğunu.

Yani kod şöyle olacaktır:

güzel CSV Reader sizin için bu karışıklık idare edecek Java için var
public class CSVTeast { 
public static void main(String[] args) { 

    CSVTeast obj = new CSVTeast(); 
    obj.run(); 
    } 
    public void run() { 
    String csvFile = "D:\\text.csv"; 
    BufferedReader br = null; 
    String line = ""; 
    String cvsSplitBy = "~"; 
    try { 
     br = new BufferedReader(new FileReader(csvFile)); 
     while ((line = br.readLine()) != null) { 
      String[] csvRead = line.split(cvsSplitBy); 
      System.out.println("Value [date= " + csvRead[5].replace("\"","") 
           + " , name=" + csvRead[9].replace("\"","")+"]"); 
     } 

    } 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"); 
    } 
} 
1

qoutemarks her CSV satırın başında iseniz, bunu yapabilirsiniz: o belirli dizenin ilk ve son karakteri kaldıracaktır

csvRead[5].substring(1, csvRead[5].length()-1) 

. Ardından sonuçları bir yerde saklamanız veya yazdırmanız gerekir.

+0

bazı değerler başlar ve tırnak işaretleri ile biter ve bazıları biter ve bazıları qouted ile başlar – Anandv

1

Dize çift tırnak ile başlayıp başlamadığını kontrol etmek de önemlidir, aksi takdirde kod CSV değerinin ilk karakterini silmeye başlar. Bunu, benim CSV değerinin rowData [1] içinde geldiği, bazen String'in içerisindeki kelimelerin sayısına bağlı olarak bazen çift tırnaklı ve bazen bulunmayan uygulamaların birinde kodlarımda yapıyorum.

String item = (String.valueOf(rowData[1].charAt(0)).equals("\"") ? rowData[1].substring(1, rowData[1].length() - 1) : rowData[1]);