Formatterで作成されたStringでString.split()正規表現を使用しようとしています
質問
こんにちは、私はここの新参者です
次のマトリックスを出力するオープンソースライブラリ(Matrix Toolkits for Java)の次のコードを使用しています
1000 1000 5
3 5 1.000000000000e+00
1000,1000,5を返すString splitを実行しようとしています
String [] parts = str.trim()。split(" \\ s");
を使用してみました
しかし、\ sを文字列トークンとして使用するのは間違っているようですが、代わりに何を使用すべきか考えていますか?
どうもありがとう!
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();
}
解決
単一のスペースだけでなく、任意の数のスペースで分割する必要があります。つまり、「+」を追加します。次のような正規表現に:
String[] parts = str.trim().split("\\s+");
他のヒント
StringTokenizer も必要ですやりたいことができるようになります。
String s = " 1000 1000 5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
所属していません StackOverflow