首页 > Java > java教程 > 正文

Java 字符串拆分:为什么 `split(\'.\')` 会抛出 `ArrayIndexOutOfBoundsException`?

Mary-Kate Olsen
发布: 2024-11-24 21:12:12
原创
860 人浏览过

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,请使用重载的 split(regex, limit) 方法,带有负数限制以禁用删除尾随空格:

String extensionRemoved = filename.split("\.", -1)[0];
登录后复制

以上是Java 字符串拆分:为什么 `split(\'.\')` 会抛出 `ArrayIndexOutOfBoundsException`?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板