尝试在使用 Formatter 创建的字符串上使用 String.split() 正则表达式

发布于 2024-07-14 20:56:58 字数 834 浏览 7 评论 0原文

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

我正在使用开源库(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();
    }

Hi All I am a newcomer here,

I am using the following code from an open source library (Matrix Toolkits for Java) which outputs the following matrix

  1000       1000                   5
     3          5  1.000000000000e+00

I am trying to do a String split that will return me 1000,1000,5

I tried using String[] parts = str.trim().split("\\s");

but it seems using the \s as a String Token is wrong, any idea what I should use instead?

thanks a lot!

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜嗑 2024-07-21 20:56:58

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

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

You should split on any number of spaces, not just single ones. That is, add "+" to your regexp like this:

String[] parts = str.trim().split("\\s+"); 
遗弃M 2024-07-21 20:56:58

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

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

StringTokenizer should also be able to do what you want.

String s = "  1000       1000                   5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文