可能重复:
Java中的split()方法不适用于点(.)
我是java的新手.我想从"."中拆分一个字符串.(点)并逐个获取这些名称.但是这个程序给出了错误: "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0"
请帮助我
String input1 = "van.bus.car";
System.out.println(input.split(".")[0]+"");
System.out.println(input.split(".")[1]+"");
System.out.println(input.split(".")[2]+"");
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 16
在正则表达式中,Dot(.)是一个匹配的特殊元字符everything.
因为String.split在Regex上工作,所以如果你想匹配一个,你需要用反斜杠转义它dot.
System.out.println(input.split("\\.")[0]+"");
Run Code Online (Sandbox Code Playgroud)
要了解有关Regex的更多信息,请参阅以下网站: -
参数split是一个正则表达式,所以完整的停止/点/ .具有特殊含义:匹配任何字符.要在你的分裂中使用它,你需要逃脱它:
String[] splits = input1.split("\\.");
Run Code Online (Sandbox Code Playgroud)
这应该为您的输入字符串提供一个长度为3的数组.
有关正则表达式以及哪些字符特殊的更多信息,请参阅Pattern的文档.