String s="|zhangsan#21#javadev#7000|lisi#24#dba#7000";
       String[] ss=new String[1];      //第二句代码,定义数组长度。
   ss=s.split("\\|");         //第三句代码,分割字符串
       
System.out.println(ss[0]);    //这里应该输出 zhangsan#21#javadev#7000
                   System.out.println(ss[1]);    //这里应该输出 lisi#24#dba#7000请问以上代码死活输不出ss[1]是什么问题?刚开始没写第二句代码的时候,提示数组下标越界,写了之后,能正常输出ss[0],但是不能输出ss[1]请大家赐教。
还有我如果对ss[0] 和 ss[1] 继续写 split("#");   分割的话不成功!连第一个数组都输不出了。

解决方案 »

  1.   

    该贴应该弄到java区去呀!怎么到这里了。
      

  2.   

    请问以上代码死活输不出ss[1]是什么问题? 刚开始没写第二句代码的时候,提示数组下标越界,写了之后,能正常输出ss[0],但是不能输出ss[1]  public static void main(String[] args) {
    // TODO Auto-generated method stub String s = "|zhangsan#21#javadev#7000|lisi#24#dba#7000";
    String[] ss = new String[1]; // 第二句代码,定义数组长度(此处定义的数组大小没用)。
    ss = s.split("\\|"); // 第三句代码,分割字符串(实际的数组大小不是上边定义的1,而是分割后的3) System.out.println(ss[0]); // 这里应该输出空字符串,就是在控制台上什么也看不见(因为分割后的字符串总共被分为3段,第一段为空串)
    System.out.println(ss[1]); // 这里应该输出 lisi#24#dba#7000
    //System.out.println(ss[2]);// 这里应该输出zhangsan#21#javadev#7000 }
      

  3.   

    纠正一下:
    System.out.println(ss[1]); // 这里应该输出 zhangsan#21#javadev#7000
    //System.out.println(ss[2]);// 这里应该输出lisi#24#dba#7000
      

  4.   

    如果要按照#分割需要写成split('\\#');
      

  5.   

    嗯,对的,我也做了下测试,贴下#的结果
    String s = "|zhangsan#21#javadev#7000|lisi#24#dba#7000";
    String[] ss = s.split("\\#"); // 第三句代码,分割字符串
    System.out.println(ss.length);
    for(String i:ss)
    System.out.println(i);7
    |zhangsan
    21
    javadev
    7000|lisi
    24
    dba
    7000
      

  6.   

    呵呵,论坛放错了,因为之前我问的一个问题是关于Oracle的,
    谢谢你的回答,很完整很清晰,但是还是输不出那个ss[1] 就是这个字符串 lisi#24#dba#7000
      

  7.   


    shiyiwan也搞java呀。这个放到java区就好
      

  8.   


    吓我一跳,以为你们都来java区了。。
      

  9.   


    我的java是初学者水平,呵呵