문제

안녕하세요 저는 모두 새로 온 사람입니다.

다음 행렬을 출력하는 오픈 소스 라이브러리 (Java 용 Matrix Toolkits)에서 다음 코드를 사용하고 있습니다.

  1000       1000                   5
     3          5  1.000000000000e+00

나는 나에게 1000,1000,5를 반환 할 문자열 분할을하려고한다.

나는 사용을 시도했다 String[] parts = str.trim().split("\\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();
    }
도움이 되었습니까?

해결책

단 하나의 공간이 아닌 여러 공간에서 분할해야합니다. 즉, 다음과 같이 regexp에 "+"를 추가하십시오.

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

다른 팁

StringTokenizer 또한 원하는 것을 할 수 있어야합니다.

String s = "  1000       1000                   5";
java.util.StringTokenizer st = new java.util.StringTokenizer(s);
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top