我遇到了split函数返回空白数组的问题。从数组中调用任何索引时,它会抛出索引超出范围的异常。这是代码:
class splitNumber {
public static void main(String[] args) {
String number = "3.84";
String[] sep = number.split(".");
System.out.println(sep[0]);
}
}
是否有任何修复或解决方法?我正在使用Java SE 7。
答案 0 :(得分:2)
如其他地方所述,String#split
采用正则表达式。构造该正则表达式的另一种方法是使用Pattern#quote
:
String number = "3.84";
String[] sep = number.split(Pattern.quote("."));
System.out.println(Arrays.toString(sep));
这样可以避免输入一堆繁琐的逃脱字符。
答案 1 :(得分:1)
“”。是正则表达式中的特殊字符,字符串的split方法接受正则表达式,您需要将其转义为:
String[] sep = number.split("\\.");
答案 2 :(得分:0)
使用“\。”
“请注意,这需要一个正则表达式,所以请记住在必要时转义特殊字符,例如,如果要分割句点。这意味着正则表达式中的”任何字符“,请使用split(”\。“)或split (Pattern.quote(”。 “))。”