2009-03-12 6 views
2

Hallo zusammen ich hier ein Neuling bin,Versuch String.split() regex auf String zu verwenden, erstellt mit Formatter

ich den folgenden Code aus einer Open-Source-Bibliothek (Matrix Toolkits für Java) verwendet, die die folgende ausgibt

Matrix
1000  1000     5 
    3   5 1.000000000000e+00 

ich versuche, einen String Split zu tun, die mich 1000,1000,5

zurückkehren ich habe versucht String[] parts = str.trim().split("\\s");

mit, aber ich t scheint die Verwendung des \ s als String Token ist falsch, irgendeine Idee, was ich stattdessen verwenden sollte?

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(); 
    } 

Antwort

3

Sie sollten auf eine beliebige Anzahl von Leerzeichen aufteilen, nicht nur einzelne. Das heißt, fügen Sie „+“, um Ihre regexp wie folgt aus:

String[] parts = str.trim().split("\\s+"); 
+0

Danke für die schnelle Antwort! es funktioniert! – freshWoWer

2

StringTokenizer sollte auch in 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()); 
} 
+0

nette alternative lösung als auch vielen dank! – freshWoWer