字符串拆分错误

时间:2012-01-25 01:31:57

标签: java string

出于某种原因,我可以让split方法起作用。老实说我不知道​​这个代码我做错了什么:

String address = "0.0.0.0";
String [] adr = address.split(".");
System.out.println(address);
System.out.println(adr[0]);

我在数组访问器上得到索引超出范围的错误。关于我哪里出错的任何想法?

3 个答案:

答案 0 :(得分:15)

split()方法需要regular-expression,而不是文字字符串,以及“。” character在正则表达式中具有特殊含义。拆分文字“。”字符,你需要转义它,以便正则表达式解析器理解你想要的。

试试这样:

String [] adr = address.split("\\.");

请注意,基本上必须将它转义两次,因为您希望正则表达式解析器获取字符串“\。”,这实际上是“\\”。表示为字符串文字时。 “\\”解析为文字“\”字符,因此正则表达式解析器被赋予“\。”,然后它解析为文字“。”。字符。

另请注意,stackoverflow解析器似乎想要取消以“\”开头的某些序列,这使得该帖子难以编辑。

答案 1 :(得分:4)

String address = "0.0.0.0";
String [] adr = address.split("\\.");
System.out.println(address);
System.out.println(adr[0]);

答案 2 :(得分:3)

“”。是正则表达式中的特殊字符,split的参数是正则表达式。逃避它。 (即“\\。”)。