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();
    }
War es hilfreich?

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
scroll top