我是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]+"");
答案 0 :(得分:14)
在正则表达式中,Dot(.)
是一个匹配everything
的特殊元字符。
由于String.split
适用于Regex,因此如果要匹配dot
,则需要使用反斜杠转义它。
System.out.println(input.split("\\.")[0]+"");
要了解有关Regex的更多信息,请参阅以下网站: -
答案 1 :(得分:6)
split
的参数是正则表达式,因此句号/点/ .
具有特殊含义:匹配任何字符。要在你的分裂中使用它,你需要逃脱它:
String[] splits = input1.split("\\.");
这应该为你的输入字符串提供一个长度为3的数组。
有关正则表达式以及哪些字符特殊的详细信息,请参阅docs for Pattern。