Java开发之道
上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 控制台输出的截取的字符串