Intentando usar String.split () regex en String creado con Formatter
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();
}
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