现在想提取a和b之间的子串,问题是a、b是重复的。比如accderfgbadefghb,b和a之间的字符不一定等长,但是a和b一定相间出现,问如何编写程序,以实现从上述字符串中提取a和b之间的子串?希望高手指点!

解决方案 »

  1.   

    String[] result = yourInputStream.split("a|b"); // JDK v1.4 required.
      

  2.   

    1楼的方法可行:
    String[] result = "accderfgbadefghb".split("a|b",0);
      

  3.   

    public String[] split(String regex)
    regex = "a|b"使用正则表达式来处理字符串,也是java提供的一种字符处理模式
      

  4.   

    用substring(int,int)方法行吗?指定要提取的子串的起始字母和结尾字母的位置就可以得到所需的字符串。我是新手,懂得不多,只是提供些自己的建议,呵呵。
      

  5.   

    谢谢humanity兄。不过要是这样呢?acdfdgdsfsbssfdasdfsoxopb
    这个字符串,我只要a...b之间的子串,不要b...a之间的子串,又应该如何?
      

  6.   

    可以将String 类,转化成 char[] 类。
    转化后就好做了,遍历一遍char[]。
    int index_a 记住a的位置,int index_b 记住b的位置。start==true 表示遇到aboolean start = false;
    while ( i < x.length){
    if ( x[i] == 'a' && !start)
    {
       index_a = i;
       start = true;
    }
    else if( x[i] == 'b' && start){
       index_b = i;
       start = false;
       // 在这里操作 index_a 与 index_b 之间的字符串。
       ...
       ...
    }
    i++;
    }