Pregunta

Hola a todos, soy un recién llegado aquí,

Estoy usando el siguiente código de una biblioteca de código abierto (Matrix Toolkits for Java) que genera la siguiente matriz

  1000       1000                   5
     3          5  1.000000000000e+00

Estoy tratando de hacer una división de cadenas que me devolverá 1000,1000,5

Intenté usar String [] parts = str.trim (). split (" \\ s ");

pero parece que usar \ s como un token de cadena está mal, ¿alguna idea de lo que debería usar en su lugar?

muchas gracias

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();
    }
¿Fue útil?

Solución

Debería dividirse en cualquier número de espacios, no solo en uno solo. Es decir, agregue " + " a tu expresión regular así:

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

Otros consejos

StringTokenizer también debería ser capaz de hacer lo que quieras.

String s = "  1000       1000                   5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top