2

大家好,我是这里的新人,

我正在使用来自开源库(Java 的 Matrix Toolkits)的以下代码,它输出以下矩阵

  1000       1000                   5
     3          5  1.000000000000e+00

我正在尝试进行字符串拆分,这将返回 1000,1000,5

我尝试使用 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();
    }
4

2 回答 2

3

您应该拆分任意数量的空格,而不仅仅是单个空格。也就是说,将“+”添加到您的正则表达式中,如下所示:

String[] parts = str.trim().split("\\s+"); 
于 2009-03-12T09:48:38.727 回答
2

StringTokenizer也应该能够做你想做的事。

String s = "  1000       1000                   5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
于 2009-03-12T09:53:12.990 回答