0

有人能告诉我为什么这段代码有一个洞:array[0][4]?

public class Random{ 

    public static void main (String []args){

        String [][] array={{"This is a test. A hole here"}};

        for(int i=0;i<array.length;i++){
            String temp=array[i][0];

            array[i]=temp.split("[\\:., ]");
        }

        System.out.print(array[0][4]);
    }
}

然而,当我在分隔符中添加一个加号(“[\:., ]+”)时,我得到了正确的输出。

public class Random{ 

    public static void main (String []args){

        String [][] array={{"This is a test. A hole here"}};

        for(int i=0;i<array.length;i++){
            String temp=array[i][0];
            array[i]=temp.split("[\\:., ]+");
        }

        System.out.print(array[0][4]);
    }
}

加号删除这个洞并解决这个问题有什么原因吗?我愿意接受任何建议或意见。是的,我是新手。

4

1 回答 1

1

您的字符串在array[i]=temp.split("[\\:., ]");此处拆分:

This is a test. A hole here
    ^  ^ ^    ^^ ^    ^

所以你在array[4].

array[i]=temp.split("[\\:., ]+");它将“。”组合成一个“分裂点”,因此它不会在两者之间分裂。

于 2012-04-14T18:52:31.467 回答