2016-04-27 8 views
2

verwenden Ich habe eine Textdatei, die viele Permutationen und Kombinationen von Sonderzeichen, Leerraum und Daten enthält. Ich speichere den Inhalt dieser Datei in einer Array-Liste, und wenn ich nicht useDelimiter() Funktion verwende, liest Java meinen Text perfekt.Wie Komma und Punkt als Trennzeichen zusätzlich mit Java Standardtrennzeichen

Das einzige Problem ist, dass sie nicht Komma (,) und Punkt (.) als Trennzeichen zu akzeptieren.

Ich weiß, ich input.useDelimiter(",|.| |\n") können Komma, Punkt, Raum als Trennzeichen und andere Optionen, wie gut, verwenden, aber dann sind die Ergebnisse, die ich bekommen sind nicht korrekt als Java gibt mir jetzt.

Gibt es eine Möglichkeit Java zu instruieren Komma zu verwenden und Punkt als Trennzeichen zusammen mit dem, was Standardtrennzeichen verwendet es?

Vielen Dank im Voraus für Ihre Hilfe :)

Grüße, Rahul

+0

Wenn Sie Zahlen mit Komma und/oder Punkten könnte es am besten sein, nur einen BufferedReader zu verwenden und 'split („[\\ \\ s.]“) '. Oder sofort einige Drittanbieter CSVReader –

Antwort

0

Das Standardtrennzeichen für Scanner wird als Muster definiert \p{javaWhitespace}+, also wenn Sie wollen auch durch Komma und Punkt als Trennzeichen behandeln, versucht

input.useDelimiter("(\\p{javaWhitespace}|\\.|,)+");

Beachten Sie, dass Sie Punkt zu entkommen müssen, da dies ein Sonderzeichen in regulären Ausdrücken ist.

+0

Man !! Ich habe versucht, dies von ungefähr 2 Tagen zu implementieren .... Konnte nicht besseres Ergebnis als das bekommen. Perfekt. Vielen Dank :) – Rahul

+0

Es gibt mir Ergebnisse genau wie ich wollte :) – Rahul

0

Sie können dies tun:

String str = "..."; 
List<String> List = Arrays.asList(str.split(",")); 

Grundsätzlich ist die .split() -Methode wird die Zeichenfolge nach Split (In diesem Fall) Trennzeichen übergeben Sie und wird ein Array von Zeichenfolgen zurückgeben.

Sie scheinen jedoch hinter einer Liste von Strings und nicht nach einem Array zu sein, daher muss das Array mithilfe des Arrays.asList() - Dienstprogramms in eine Liste umgewandelt werden. So wie ein FYI könnte man auch etwas tun, wie so:

String str = "..."; 
ArrayList<String> List = Arrays.asList(str.split(",")); 
0

Verwendung entkam Charakter wie folgt aus:

input.useDelimiter("\\.");