尝试在使用Formatter创建的String上使用String.split()regex

时间:2009-03-12 09:44:38

标签: java regex string split space

大家好,我是新手,

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

  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();
    }

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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