Попытка использовать регулярное выражение String.split () для строки, созданной с помощью Formatter - PullRequest
2 голосов
/ 12 марта 2009

Привет всем Я новичок здесь,

Я использую следующий код из библиотеки с открытым исходным кодом (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 ]

3 голосов
/ 12 марта 2009

Вы должны разбить на любое количество пробелов, а не только один. То есть, добавьте «+» к своему регулярному выражению так:

String[] parts = str.trim().split("\\s+"); 
2 голосов
/ 12 марта 2009

StringTokenizer также должен иметь возможность делать то, что вы хотите.

String s = "  1000       1000                   5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...