字符串的分割功能并不重要

时间:2014-07-10 16:07:43

标签: java string split

当我在新项目中尝试此代码时,出现此错误:

  

java.lang.ArrayIndexOutOfBoundsException:第4行的0

String temp = "Capture.png";
System.out.println(temp);
String[] temp2 = temp.split(".");
System.out.println(temp2[0]);

主要操作是验证文件的扩展名,但是当我尝试这个时,分割功能不起作用。

3 个答案:

答案 0 :(得分:3)

Java使用正则表达式来表示split参数,而句点表示正则表达式中的某些内容。

尝试逃避这段时间。

String temp = "Capture.png";
System.out.println(temp);
String[] temp2 = temp.split("\\.");
System.out.println(temp2[0]);

答案 1 :(得分:3)

你需要逃避这段时间,即它必须是temp.split("\\.")

否则,它会将句点视为"任何字符"。 由于任何字符都匹配字符串的所有字符,因此完整的字符串只会成为分隔符。由于分隔符不在拆分结果中,因此拆分结果为空。这就是你获得越界异常的原因。

答案 2 :(得分:1)

Java使用正则表达式作为方法split的参数,如文档here

中所述

.是表示正则表达式中所有字符的字符。所以你需要在代码中转义它,如下所示:

String temp = "Capture.png";
System.out.println(temp);
String[] temp2 = temp.split("\\.");
System.out.println(temp2[0]);

请注意,它使用两个\进行转义,因为\也是正则表达式中的控制字符,所以它也需要进行转义。