public static void main(String[] args) {
String[] t ="###".split("#");
System.out.println(t.length);
for(int i=0; i<t.length; ++i) {
System.out.println(t[i] + "---");
}

}
以上代码输出我想很多人都与我一样不是很理解,非得在#号与#号之间添加空格,才能幸免于难。求解答。谢谢

解决方案 »

  1.   

    貌似"###".split("#")会把空字符""给去掉
    如果改成这样 "###".split("#",99);打印
    4
    ---
    ---
    ---
    ---
      

  2.   

    楼主用“#”做分割,分割的结果就是四个空字符串,全部是空字符串,根据API文档里面的split方法的描述——“所得数组中不包括结尾空字符串”,结尾的空字符串都会被忽略,你整个数组都是空字符串,当然会全部被忽略。
      

  3.   


    3楼这样的不保险,如果“#”号多于99个,后面的照样不会被分割,写成-1就好了,因为根据API文档——“如果n为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度”,也就是说,能够被分割多少次,就会被分割多少次,结尾空串不会被忽略。
      

  4.   


    如果按照这样的api说法,可能就没有办法处理这样的场景了,还非得在split之前做一下处理。
      

  5.   

    是呀,只知道看split(String)这个api,为什么不看另一个方法重载的api
      

  6.   


    大神,散分。谢了...
    大家还是好好学习api