source

Java split() 메서드는 마지막에 빈 문자열을 삭제합니까?

gigabyte 2023. 1. 12. 22:07
반응형

Java split() 메서드는 마지막에 빈 문자열을 삭제합니까?

아래 프로그램을 확인하세요.

try {
    for (String data : Files.readAllLines(Paths.get("D:/sample.txt"))){
        String[] de = data.split(";");
        System.out.println("Length = " + de.length);
    }
} catch (IOException e) {
    e.printStackTrace();
}

Sample.txt:

1;2;3;4A;B;;a;b;c;

출력:

길이 = 4길이 = 2길이 = 3

두 번째와 세 번째 출력이 4가 아닌 2와 3을 제공하는 이유는 무엇입니까?sample.txt파일, 두 번째 줄과 세 번째 줄의 조건이 newline이어야 합니다.\n또는 입력)을 사용하여 세 번째 필드에 딜리미터를 지정합니다.두 번째 줄과 세 번째 줄의 길이를 어떻게 4로 할 수 있는지 누가 도와주실 수 있나요?sample.txt파일 및 값 인쇄 방법de[2](비활성화)ArrayIndexOutOfBoundsException)?

패턴을 가능한 한 자주 적용하도록 지정할 수 있습니다.

String[] de = data.split(";", -1);

자세한 내용은 두 개의 인수를 사용하는 분할 방법에 대해 Javadoc을 참조하십시오.

여기 중요한 인용구가 있습니다.

[...] the array can have any length, and trailing empty strings will be discarded.

그게 싫으면 파비안의 댓글을 보세요.전화할 때String.split(String), 호출합니다.String.split(String, 0)(닥터가 말한 대로) 빈 문자열의 후행은 폐기됩니다.String.split(String, n)와 함께n < 0아무것도 버리지 않아요.

언급URL : https://stackoverflow.com/questions/545957/java-split-method-strips-empty-strings-at-the-end

반응형