2009-03-12 21 views
2

こんにちは、私はここに新人、は以下を出力フォーマッタ

私は、オープンソースのライブラリ(Java用マトリクスツールキット)から、次のコードを使用しています午前のすべてを使用して作成しました行列私は私に1000,1000,5

を返します。文字列分割を行うにしようとしています

1000  1000     5 
    3   5 1.000000000000e+00 

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

しかし、私を使用してみましたtは文字列トークンとして\ 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(); 
    } 

答えて

3

単一のものではなく、任意の数のスペースに分割する必要があります。それは、「+」あなたの正規表現を次のように追加されます。

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

お返事ありがとうございます! それは動作します! – freshWoWer

2

StringTokenizerはまた、あなたがやりたいことができるはずです。

String s = " 1000  1000     5"; 
java.util.StringTokenizer st = new java.util.StringTokenizer(s); 
while (st.hasMoreTokens()) { 
    System.out.println(st.nextToken()); 
} 
+0

すてきな代替ソリューションもありがとう! – freshWoWer