2017-03-20 3 views
0

Ich entschlüssele eine Zeichenfolge, um mehrere kommagetrennte Werte anzuzeigen, und ich möchte auf die einzelnen Informationen zugreifen, aber die verschlüsselte Zeichenfolge enthält die Headerwerte nicht.Abrufen von Daten aus CSVRecord ohne Zugriff auf Headerwerte

Ich bin mir bewusst, dass, wenn CSV-Dateien in einer bestimmten Spalte Informationen lesen kann unter Verwendung beispielsweise zugegriffen werden:

CSVRecord.get(ID); 

Wo ID ein Header-Wert in der Tabelle ist, aber es scheint nicht zu sein eine Möglichkeit, auf diese zuzugreifen, ohne den Kopfzeilennamen zu kennen.

Die verschlüsselte Zeichenfolge wird in einer anderen Anwendung entschlüsselt.

Gibt es eine Möglichkeit, den Zugriff die kommagetrennten Werte zu lesen, ohne den Header-Wert zu kennen, oder gibt es Alternativen zu CSVRecord?

+0

Warum ist diese etikettierte Verschlüsselung und Lizenzschlüssel? – Robert

+0

Sie können auf Felder nach Index zugreifen. https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVRecord.html#get-int- – Robert

+0

Entfernt, aber hinzugefügt, da der Zweck dieser Aufgabe darin besteht, Lizenzinformationen zu erhalten von einem entschlüsselten Lizenzschlüssel – javasaucebiner

Antwort

0

Sie können einfach über die resultierenden Datensätze iterieren und auf das i-te Element eines Datensatzes über record.get(i), z.

Reader in = new StringReader(
      "DAR_123451     ,\"XXXXX Hello World Hello World XXX \"\n" + 
      "DAR_123452     ,\"XXXXX Hello World Hello World XXX \""); 
    Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(in); 
    for (CSVRecord record : records) { 
     for (int i = 0; i < record.size(); i++) { 
      System.out.println("At " + i + ": " + record.get(i)); 
     } 
    }