7

可能重复:
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]+"");
4

2 回答 2

19

在正则表达式中,Dot(.)是一个匹配的特殊元字符everything

由于String.split适用于正则表达式,因此如果要匹配dot.

System.out.println(input.split("\\.")[0]+"");

要了解有关 Regex 的更多信息,请参阅以下站点:-

于 2012-10-15T18:04:13.847 回答
7

to 的参数split是一个正则表达式,因此句号/点/.具有特殊含义:匹配任何字符。要在拆分中逐字使用它,您需要对其进行转义:

String[] splits = input1.split("\\.");

这应该为您的输入字符串提供一个长度为 3 的数组。

有关正则表达式和特殊字符的更多信息,请参阅Pattern 的文档

于 2012-10-15T18:04:42.517 回答