出于某种原因,我可以使用 split 方法。老实说,我不知道这段代码我做错了什么:
String address = "0.0.0.0";
String [] adr = address.split(".");
System.out.println(address);
System.out.println(adr[0]);
我在数组访问器上遇到索引越界错误。关于我哪里出错了有什么想法吗?
最佳答案
split()
方法需要 regular-expression ,不是文字字符串,而“.”字符在正则表达式中具有特殊含义。根据字面意思“.”进行分割字符,您需要对其进行转义,以便正则表达式解析器理解这就是您想要的。
尝试这样:
String [] adr = address.split("\\.");
请注意,本质上有必要将其转义两次,因为您希望正则表达式解析器获取字符串“\.”,它实际上是“\\.”。当表示为字符串文字时。 “\\”解析为文字“\”字符,因此正则表达式解析器给出“\.”,然后将其解析为文字“.”。性格。
另请注意,stackoverflow 解析器似乎想要转义以“\”开头的某些序列,这使得这篇文章难以编辑。
关于java - 字符串分割错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996842/