> Java > java지도 시간 > Java의 `split()` 메소드가 빈 문자열을 제거하는 것을 어떻게 방지할 수 있습니까?

Java의 `split()` 메소드가 빈 문자열을 제거하는 것을 어떻게 방지할 수 있습니까?

DDD
풀어 주다: 2024-12-29 13:10:15
원래의
529명이 탐색했습니다.

How Can I Prevent Java's `split()` Method from Removing Empty Strings?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿