Java 문자열 분할에서 빈 값 제거 수정
Java 문자열에서 Split() 메서드를 사용할 때 예기치 않은 결과가 발생할 수 있습니다. 여기서 빈 값은 결과 배열에서 제거됩니다. 이는 다음 예에서 볼 수 있습니다.
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
이 경우에는 8개 값의 배열([5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY])을 얻을 것으로 예상됩니다. . 그러나 6개의 값만 반환됩니다.
이 동작의 이유는 기본적으로 분할() 메서드가 결과 배열에서 뒤에 오는 빈 문자열을 제거하기 때문입니다. 이 동작을 비활성화하고 빈 값을 포함하려면 Split()의 오버로드된 버전을 사용할 수 있습니다.
String[] split = data.split("\|", -1);
limit 매개변수를 음수 값(이 경우 -1)으로 설정하여 메서드에 지시합니다. 가능한 한 여러 번 패턴을 적용하고 뒤에 오는 빈 문자열을 포함합니다.
이는 분할(regex)가 내부적으로 분할(regex, 0)을 호출하기 때문에 가능합니다. 후행 빈 문자열. 음수 제한을 제공하면 이 동작을 효과적으로 비활성화하고 메소드가 빈 값을 포함한 모든 값을 유지하도록 강제할 수 있습니다.
예외:
제거하는 것이 중요합니다. 뒤에 오는 빈 문자열은 분할 프로세스에 의해 생성된 경우에만 의미가 있습니다. 빈 문자열의 경우 더 이상 분할할 수 없으므로 분할하면 단일 빈 문자열 값이 포함된 배열이 생성됩니다. 이는 Split()이 실제 분할을 수행하지 않았기 때문에 빈 문자열은 분할 작업으로 생성된 빈 문자열이 아닌 원래 입력을 나타냅니다.
위 내용은 Java의 `split()` 메소드가 빈 문자열을 제거하는 것을 어떻게 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!