Tentando usar String.split () regex na string criado com Formatter
Pergunta
Oi eu sou um novato aqui,
Eu estou usando o seguinte código a partir de uma biblioteca de código aberto (Matrix Toolkits para Java), que emite o seguinte matriz
1000 1000 5
3 5 1.000000000000e+00
Eu estou tentando fazer um split String que vai me devolver 1000,1000,5
Eu tentei usar String[] parts = str.trim().split("\\s");
mas parece usando o \ s como um token cordas é errado, alguma idéia do que eu deveria usar em vez disso?
muito obrigado!
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();
}
Solução
Você deve dividir em qualquer número de espaços, não apenas os solteiros. Ou seja, adicionar "+" ao seu regexp como esta:
String[] parts = str.trim().split("\\s+");
Outras dicas
StringTokenizer também deve ser capaz de fazer o que quiser.
String s = " 1000 1000 5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow