Wie teilt eine Zeichenfolge mit durch Tabulatoren und Zeilenumbrüche?

Bekam ich eine tab-getrennte Datei, die ich aufteilen will durch Tabulatoren und Zeilenumbrüche, wo eine Registerkarte repräsentiert das Trennzeichen zwischen Feldern und einem newline stellt ein neues Objekt erzeugt werden soll. Die Datei kann wie folgt Aussehen:

Peter\[email protected]\tpeterpassword\nBob\[email protected]\tbobbypassword\n...

wo \t ist ein Register, und \n ist ein Zeilenumbruch.

Möchte ich ermöglichen das hochladen dieser Datei auf meinem Programm, das erstellt einen neuen Benutzer für jede Zeile in der Datei mit den Feldern auf der Linie. Aber wie kann ich die Verwendung von zwei Token - beide tab und newline? Mein code würde wie folgt Aussehen:

String everything = "";
BufferedReader br = null;
try {
    br = new BufferedReader(new InputStreamReader(file.getInputStream()));
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {

       //now create object according to the string
       StringTokenizer st = new StringTokenizer(line , "\t");    
       String name = st.nextToken();
       String email = st.nextToken();
       String password = st.nextToken();
       User.createNewUser(name, email, password);

        sb.append(line);
        sb.append('\n');
        line = br.readLine();
    }
    everything = sb.toString();
    br.close();
} catch (IOException e) {
    e.printStackTrace();
}
System.out.println("Everything: " + everything);

Würden Sie code wie oben funktioniert?

  • Testen Sie es und finden Sie heraus.
  • und zur info: StringTokenizer können mehrere Token.
  • Warum versuchst du es nicht und lass es uns wissen!
  • Sie können auch split in ein array, wenn Sie wollen, und split mit regex. String[]tokens = etwas.split("\n|\\\t");
Schreibe einen Kommentar