public class Test {
public static void main(String[] args) {
String a = "|a|||ab|";
String[] b = a.split("\\|");
System.out.println(b.length);
}
}
问:输出是多少?

解决方案 »

  1.   


    a


    ab长度5
      

  2.   

    5~~LZ不在,我回答,刚用MyEclipse测了一下|!
      

  3.   

    如果改成String[] b = a.split("|");呢?
      

  4.   

    如果改成String[] b = a.split("|");呢?
    相当于 String[] b = a.split("");
    结果是 9。
    b 是:[, |, a, |, |, |, a, b, |]
      

  5.   

    b中的元素:
    "",a,"","",ab
    长度是5
      

  6.   

    对我有用[0]丢个板砖[0]引用举报管理TOP
      

  7.   

    public String[] split(String regex)
    split的参数是个正则表达式,特殊字符如 | . 等都需要转义
      

  8.   

    如果分隔符在最前,就会在字符串前面加上一个空串""分割
    如果分割符在最后,就不会分割了。System.out.println(Arrays.toString("java_".split("_")));
    System.out.println(Arrays.toString("_java".split("_")));
      

  9.   

     String a = "|a|||ab|";
    String[] b = a.split("\\|");
    和String[] b = a.split("|");在Java中有一些特殊字符,当我们使用他们的时候需要转义,如*、+、|等。
    当他们出现在字符串,我们使用split方法切割的时候,如果使用
    String[] b = a.split("|");就会得不到正确的结果,应为|是特殊字符,无法表示普通字符“|”。
    这个时候我们需要转义,告诉jvm我们要把它当作是普通字符,所以
    String[] b = a.split("\\|");
    这样才能得到预期的结果