java - 为什么我不能在 split() 函数中使用 "."作为分隔符?

标签 java exception xls delimiter indexoutofboundsexception

<分区>

我必须获取一个输入文件,并在其名称末尾附加一个数字以用作输出文件。为此,我使用以下代码:

String delimiter = ".";
String[] splitInput = inputLocation.split(delimiter);
String outputLocation = splitInput[0];

我得到以下异常:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

我添加了以下语句来检查 splitInput 数组的长度,我得到 0 作为输出。

System.out.println(splitInput.length);

后来,我用“.x”作为分隔符(我的文件是.xls)。我可以使用“.x”来实现我的目的,但我很好奇为什么不使用“.”工作?

最佳答案

split 函数使用正则表达式,您必须将“.”转义。用“\”

当使用正则表达式“.”时表示任何字符。试试这个

String delimiter = "\\.x";

还需要提到的是,java中的\也是一个特殊字符,用来创建其他特殊字符。因此,您必须使用另一个 \ 转义您的 \ 因此 "\\.x"


Java 文档中有一些关于所有特殊字符及其作用的很棒的文档:

Java 8 Docs
Java 7 Docs
Java 6 Docs

关于java - 为什么我不能在 split() 函数中使用 "."作为分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18663638/

相关文章:

java - 使用递归比较字符串以确定哪个按字母顺序排在第一位 Java

java - 是否有任何选项可以通过其属性从 Set/HashSet 中检索元素,而无需在 java 中创建整个对象?

java - 异常处理中的查询

linux - 在 linux 系统上从 golang 中的 xls 文件中读取值

xml - 如何将两个 SAS 数据集的数据正确导出到一个 XML 数据文件?

java - 错误 : java. sql.SQLSyntaxErrorException:用户缺乏权限或未找到对象:ACCOUNTS

java - 如何在警报对话框中将项目设置为选中?

java - cfdump 中奇怪的 UnsupportedOperationException java 错误

Android Gradle 问题 : Caused by: groovy. lang.MissingMethodException:没有方法签名

java - 如何禁用 Excel 报告中的 "grid line"选项?