Java CSV Datei auslesen

Diskutiere Java CSV Datei auslesen im Java Basics - Anfänger-Themen Bereich.
N

NicoFoerster

Hallo zusammen,

ich möchte mit Java eine CSV Datei auslesen. Besteht aus Name, Vorname und Nummer

Wenn ich in ein Textfield diese Nummer eingebe, soll mir der dazugehörige Name und Vorname ausgegeben werden und überprüft werden, ob die Nummer überhaupt in der Liste vorkommt.
Im Moment Parse ich die CSV Datei und kriege zu jedem Eintrag ein Array

[XXX;YYY;1234567891234567]
[XXX;YYY;1234567891234567]

Wie kann ich das jetzt genau machen?
Vielen Dank
 
J

JustNobody

Also wenn das Auslesen doch schon klappt (Du bekommst die Einträge ja schon hast Du geschrieben), dann sollte es doch kein Problem sein mit einer Schleife durch die Elemente zu gehen um da ein bestimmtes Element zu finden.

Daher würde ich Dich bitten, näher zu beschreiben, was Du bereits hast und wo das Problem genau ist.
 
N

NicoFoerster

public static void main(String path)
{
System.out.println(path);
List<String> mitglieder;
List<String> result;
try
{
mitglieder = Files.readAllLines(Paths.get(path));
for(String line : mitglieder)
{
result = new ArrayList<>(Arrays.asList(line.split("\"")));
System.out.println(result);
}

//Überprüfen, ob Wert in der ArrayList vorhanden ist
String mitgliedsnummer = "XXX;YYY;1234567891234567";

if (mitglieder.contains(mitgliedsnummer))
{
System.out.println("Sie haben folgendes Mitglied ausgewählt: " + mitgliedsnummer);
System.out.println("Mitglied vorhanden");
}
else
{
System.out.println("Sie haben folgendes Mitglied ausgewählt: " + mitgliedsnummer);
System.out.println("Das Mitglied exisitiert nicht!");
}
}
catch (Exception e)
{
System.out.println("Sie haben keine gültige Datei ausgewählt!");
}
}
 
N

NicoFoerster

Meine Ausgabe sieht dann in etwa wie folgt aus:
[XXX;YYY;1234567891234567]
[ZZZ;QQQ;123]

Wenn ich jetzt bspw. 123 eingebe, möchte ich dazugehörig ZZZ & QQQ ausgegeben bekommen
 
J

JustNobody

Wie sieht denn Deine CSV Datei aus? Dein Split ist etwas seltsam auf den ersten Blick. Das ist schon das erste Problem.
Dann machen die Datenstrukturen wenig Sinn. Wenn Du Mitglieder hast, die Vorname, Nachname, Mitgliedsnummer haben sollen, dann würde ich so eine Klasse bauen.

Die Klasse bekommt dann von mir aus ein public static Mitglied parse(final String line) um eine Zeile zu parsen und ein neues Mitglied anzulegen und zurück zu geben. Dann wäre Dein Code etwas wie:

Java:
List<Mitglied> mitglieder = new ArrayList<>();
try
{
  for(String line : Files.readAllLines(Paths.get(path))) {
      mitglieder.add(Mitglied.parse(line));
  }
}
Und dann kann man diese Liste an Mitgliedern durchgehen und gezielt nach dem suchen, was einen interessiert.

Wenn Du diese Mitglied Klasse nicht haben willst und nur so bleiben willst:
Dann liest Du alle Zeilen wie gehabt in deine List<String>. Und dann gehst Du alle Elemente durch und prüfst, ob es auf ";" + Eingabe endet. Also etwas wie:

Java:
List<Mitglied> mitglieder = new ArrayList<>();
  for(String entry : mitglieder) {
      if (entry.endsWith(";" + suchstring) {
        // Gefunden!
      }
  }
}
 
N

NicoFoerster

So sieht meine CSV Datei aus:

Nachname;Vorname;Mitgliedsnummer.
XXX;YYY;1234567890123456
QQQ;ZZZ;1234567890123456

Neue Mitglieder brauche ich nicht anzulegen, sondern einfach nur die CSV Datei auszulesen.
Ja ich würde gerne so bleiben wollen erstmal für den Anfang ;)
 
N

NicoFoerster

Könntest du evtl so nett sein und das bei mir mit einbauen? Ich kriege das auch dank deiner gut erklärten Hilfe nicht hin leider :(
 
Thema: 

Java CSV Datei auslesen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben