字符串拆分错误

use*_*153 2 java string

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

String address = "0.0.0.0";
String [] adr = address.split(".");
System.out.println(address);
System.out.println(adr[0]);
Run Code Online (Sandbox Code Playgroud)

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

aro*_*oth 15

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

试试这样:

String [] adr = address.split("\\.");
Run Code Online (Sandbox Code Playgroud)

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

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