从java中完全停止分裂

时间:2012-10-15 18:02:33

标签: java

  

可能重复:
  The split() method in Java does not work on a dot (.)

我是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]+"");

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