>Java >java지도 시간 >Java 문자열 분할: `split(\'.\')`에서 `ArrayIndexOutOfBoundsException`이 발생하는 이유는 무엇입니까?

Java 문자열 분할: `split(\'.\')`에서 `ArrayIndexOutOfBoundsException`이 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-24 21:12:12930검색

Java String Splitting: Why Does `split(

""."(점)으로 Java 문자열 분할

문제:

이유 다음 코드는 점 분할을 시도할 때 ArrayIndexOutOfBoundsException을 발생시키지만 작동합니다. 슬래시로 분할하는 경우:

String filename = "D:/some folder/001.docx";
String extensionRemoved = filename.split(".")[0];

대:

String driveLetter = filename.split("/")[0];

해결책:

문자 그대로 점으로 분할하려면 점 문자 정규식 패턴으로 처리하지 않으려면 이스케이프해야 합니다(모든 문자):

String extensionRemoved = filename.split("\.")[0];

정규식 문자열에서 단일 백슬래시를 생성하려면 이중 백슬래시(\)가 필요합니다.

또한 입력 문자열이 단지 점인 경우 극단적인 경우가 발생합니다. (".") 점으로 분할하면 빈 배열이 생성되기 때문입니다. 이 경우 ArrayIndexOutOfBoundsException을 방지하려면 오버로드된 후행 공백 제거를 비활성화하는 음수 제한이 있는 분할(정규식, 제한) 메서드:

String extensionRemoved = filename.split("\.", -1)[0];

위 내용은 Java 문자열 분할: `split('.')`에서 `ArrayIndexOutOfBoundsException`이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.