上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
谬误12 小心为妙——split ()方法可分割所有字符串
在Java中,程序员常常使用split ()方法分割字符串,但是如果需要分割的字符串中含有一些特殊的字符,就有可能达不到预期的效果,如字符串中含有“+、*”等字符。
例如下面的代码:
public class Test { public static void main (String[] args){ String[] test="11+22+33". split ("+"); //字符串数组,利用“+”分割 for(int i=0; i<test. length; i++){ System.out. println (test[i]); //输出信息 } } }
上述代码运行后,在控制台输出的效果如图4.6所示。
图4.6 程序运行后,在控制台抛出的异常信息
从图4.6中可以得知,如果字符串中含有特殊字符串,程序是无法运行的,那么如何才能更好地解决这个问题呢,首先应了解一下split ()方法的具体使用方法。
split方法的语法为:
public String[] split (String regex)
说明
参数regex是一个regular-expression的匹配模式而不是一个简单的String。
显然,“+”不是有效的模式匹配规则表达式,用“\\+”转义后,即可得到正确的结果,代码如下:
public class Test { public static void main (String[] args){ String[] test="11+22+33". split ("\\+"); //字符串数组,利用“+”分割 for(int i=0; i<test. length; i++){ System.out. println (test[i]); //输出信息 } } }
上述代码运行后,在控制台的输出效果如图4.7所示。
图4.7 控制台输出的截取的字符串