Der Versuch, String.split () verwenden regex auf String erstellt mit Formatter
Frage
Hallo zusammen Ich bin ein Neuling hier,
Ich verwende den folgenden Code aus einer Open-Source-Bibliothek (Matrix Toolkits für Java), die die folgende Matrix gibt
1000 1000 5
3 5 1.000000000000e+00
Ich versuche, einen String Split zu tun, die mir zurückkehren 1000,1000,5
Ich habe versucht, mit String[] parts = str.trim().split("\\s");
, aber es scheint mit dem \ s als ein String Token falsch ist, eine Ahnung, was soll ich stattdessen verwenden?
Vielen Dank!
public String toString() {
// Output into coordinate format. Indices start from 1 instead of 0
Formatter out = new Formatter();
out.format("%10d %10d %19d\n", numRows, numColumns, Matrices
.cardinality(this));
for (MatrixEntry e : this)
if (e.get() != 0)
out.format("%10d %10d % .12e\n", e.row() + 1, e.column() + 1, e
.get());
return out.toString();
}
Lösung
Sie sollten auf einer beliebigen Anzahl von Räumen aufgeteilt, nicht nur einzelne diejenigen. Das heißt, fügen Sie "+", um Ihre regexp wie folgt aus:
String[] parts = str.trim().split("\\s+");
Andere Tipps
StringTokenizer sollte auch der Lage sein, zu tun, was Sie wollen.
String s = " 1000 1000 5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow