string[] strs="aaa.bbb"split(".");
string str1=strs[0];
报告说java.lang.ArrayIndexOutOfBoundsException;
改为
string[] strs="aaa.bbb"split("\\.");
就没事,不知道喳回事,请高人解释一下
JDK版本j2sdk1.4.2_10

解决方案 »

  1.   

    String[] strs="aaa.bbb".split(".");这个.需要转义一下,就是你的第二种方法。String[] strs="aaa.bbb".split("\\.");
      

  2.   

    String.split(String regex)方法,
    参数regex不是你要匹配的字符串,而是,待匹配字符串的正则表达式。
    也就是说,regex是"aaa.bbb"的正则表达式。
    你可以去查一查,正则表达式的相关资料,就知道了。
    或者,建议使用StringTokenizer类,对字符串进行分割。
    StringTokenizer(String str,String delim)
    上面问题可以写成:
    StringTokenizer tok = new StringTokenizer("aaa.bbb",".");
    while(tok.hasMoreTokens()){
      String subStr = tok.nextToken();
      System.out.println(subStr);
    }
      

  3.   

    在一个项目中有的String[] strs="aaa.bbb".split("."); 写成了这样,能通过
    我估计是JDK版本的问题
      

  4.   

    使用JDK1.5以上的版本吧,现在1.4用的很少了
      

  5.   

    是jdk的问题...
    >jdk4都可以实现的
      

  6.   

    split用正则表达式来匹配字符串,
    System.out.println("aaa.bbb".split(".").length);打印的是0,也就是说没有匹配的,在正则表达式中"."是特殊字符,要匹配“.”要转译“\\.”。
      

  7.   

    顺便说一句,所有楼上的兄弟都只是说了下split的语法~~~就没个人说下为什么会出现数组越界的异常~~
      

  8.   

    不是以经说了吗,("aaa.bbb".split(".").length返回的是0,如Integer[] i=new Integer[0];一样,当然要抛数组下标越界的异常了
      

  9.   

    jdk版本的问题哈。>1.4就不会有了的。