Grundsätzlich ist mein Problem das, ich muss Text analysieren, wobei ,
das Trennzeichen ist, aber alles in " "
Anführungszeichen sollte nicht für ein Trennzeichen überprüft werden. Ist das, was die Scanner.skip
Methode ist? Ich würde es selbst überprüfen, aber ich verstehe nicht, wie man ein Regex-Muster in Java schreibt, wo das Token etwas zwischen zwei " "
ist. Ich möchte auch jeden zitierten Text in das richtige Token einschließen, das durch das gültige ,
begrenzt wurde.Scanner erhalten, um zitierten Text einzuschließen, aber zu ignorieren?
Antwort
Ich habe dieses Problem vor einer Weile untersucht und fand keine ausreichend schnelle Lösung.
Als Ergebnis eingebaut ich einen einfache benutzerdefinierten String-Splitter in ein Open-Source-Projekt arbeite ich an (die Trennzeichen zwischen Anführungszeichen ignoriert):
Zum Beispiel:
public static void main(String[] args) throws IOException
{
String s = "ads,asdas,das,das, \"ahda,asd,as,d,a\", adsa";
String[] tokens = QuoteAwareStringSplitter.splitLine(s);
for (String token : tokens)
{
System.out.println(token);
}
}
Drucke:
ads
asdas
das
das
ahda,asd,as,d,a
adsa
Ich hatte gehofft, es gab einen Weg, dies zu tun, der Char Char Char nicht manuell gehen, aber wenn es ist, denke ich, dass eine Lösung wie diese nicht so schlecht ist. – user1086516
Irgendwann muss es Char von Char sein. Und es wird von Ihrem Code abstrahiert, wenn Sie etwas wie "QuoteIgnorringStringSplitter" verwenden. – DerMike
Nun, was auch immer für eine Bibliothek oder Lösung, die Sie wählen, auch eine Lösung, die auf regulären Ausdrücken basiert, wird durch 'char' durch' char' als Teil der Implementierung gesetzt. Es wird nur vor dir verborgen sein. Reguläre Ausdrücke sind keine Zauberei ... Edit: @DerMike schlug mich dazu :) – ulmangt
- 1. Wie ziehe zitierten Text mit span um?
- 2. Ant concat erhalten, um Stücklisten zu ignorieren?
- 3. Kann nicht Facebook wie Knopf erhalten, um bestimmtes Bild einzuschließen
- 4. Regex, um eine Sache einzuschließen, aber eine andere auszuschließen
- 5. Eclipse - Dateisuche mit Text - Regex, um Whitespace-Kombinationen einzuschließen?
- 6. Nicht geclusterte SQL-Indizes. Um "einzuschließen" oder nicht "einzuschließen"
- 7. Korrekter Weg, um bootstrap.css.map einzuschließen?
- 8. Vorhandenes Tool oder Code, um zitierten Text in E-Mails zu identifizieren
- 9. XPath, um Text innerhalb eines Elements zu ignorieren?
- 10. Erklären Sie Sublime Text, um alles in .gitignore zu ignorieren?
- 11. Wie zitierten Argumente
- 12. Verwenden Sie Require_once(), um Datenbankverbindungsvariablen korrekt einzuschließen
- 13. hgignore: Hilfe Ignorieren aller Dateien, aber bestimmte
- 14. Hinzufügen (nicht festgelegt) Wert, um Filter in Google Analytics einzuschließen
- 15. Python wie ASCII-Text zu "ignorieren"?
- 16. Wie grep um ein optionales Wort einzuschließen?
- 17. jquery: leer, aber ignorieren Textknoten
- 18. Regex, um den gesamten Text außerhalb der Klammern zu erhalten
- 19. JavaScript, um Texteingabewert zu erhalten
- 20. Erhalten von jquery, um entsprechenden Text anzuzeigen
- 21. MySQL Join, um Daten zu erhalten, aber Zeilen nicht ausschließen
- 22. XML-DOM, um Text innerhalb eines Tags zu erhalten
- 23. Python Parse String, um Inhalte zwischen Text zu erhalten
- 24. Erhalte Emacs, um * .orig Dateien zu ignorieren
- 25. Kann ich die Scanner-Klasse in einer Textdatei verwenden, um Informationen zu erhalten?
- 26. Wie die AAA-Syntax zu verwenden, um eine AssertWasCalled zu tun, aber ignorieren Argumente
- 27. Regulärer Ausdruck, um äußere Klammern zu entsprechen, aber Kommentarzeilen mit Klammern zu ignorieren
- 28. Erhalten Gesamt (Ignorieren Überlauf) Breite in CSS
- 29. Um Tabellendetails zu erhalten
- 30. DistinctBy aber ignorieren null/leer
Klingt wie Sie versuchen, p ass eine CSV-Datei, suchen Sie nach einer beliebigen CSV-Bibliothek wie http://sourceforge.net/projects/javacsv/ oder ähnlich. – Kennet