题好像是这样的:
有这样一串字符串“abbcdef33”,截取掉“abb33”,还不能用substring等方法,问怎么做最快?

解决方案 »

  1.   

    abbabbcdef33 这个结果应该是啥?
      

  2.   

    不准用substring?那就用正则了
    /^[cdef]$/
    不知道对否?
      

  3.   


    题目意思是针对abbcdef33这个特定串,还是我可以任意给个串要你去掉?
      

  4.   

    如果仅是针对这个特定字符串,扫描一遍就行,但如果是给个任意串,如
    abbabbcdef33 这种,处理起来应该比较麻烦。#include "iostream"
    using namespace std;
    int main()
    {
    char str1[10] = "abbcdef33";
    char str2[6] = "abb33";
    char str3[10]= "";
    int i, j, k;
    i = j = k =0;
    while(str1[i] && str2[j])
    {
    if(str1[i] == str2[j])
    j++;
    else 
    str3[k++] = str1[i];
    i++;
    }
    while(str1[i])
    str3[k] = '\0';
    puts(str3);
    return 0;
    }
      

  5.   

    不好意思,忘说了。
    能不能写个java类啊!
      

  6.   

    改了下,不知道行不行。import java.util.*;
    import java.lang.*;
    public class Main {
        public static void main(String[] args) {
            String  str1 = "abbcdef33";
    String  str2 = "abb33";
    String  str3= "";
    int i, j, k, len1 = str1.length(), len2 = str2.length();
    i = j = k =0;
    while(i < len1 && j < len2)
    {
                if(str1.charAt(i) == str2.charAt(j))
                     j++;
                else str3 += str1.charAt(i);
                i++;
    }
    while(i < len1 )
            {
                str3 += str1.charAt(i);
                i++;
            }
    System.out.println(str3);
        }
    }
      

  7.   

    使用正则表达式   替换了字符串中所有的a,b或数字
    String regex = "[ab]|\\d";
    String target = "abbcdef33";
    String s = target.replaceAll(regex, "");
    System.out.println(s);
      

  8.   


    package c;public class Test2 {
    public static void main(String[] args) {
    String str1 = "abbcdef33";
    String rex = "abb(\\w+)33";
    System.out.println("print --> " + str1.replaceAll(rex, "$1")); // print --> cdef
    }
    }
      

  9.   


    String s = "abbcdef33";
    System.out.println(s.replace("abb","").replace("33",""));
    //先去掉abb再去掉33
      

  10.   

    应该靠的是算法而且是字匹配算法 字符串的匹配
    kunth—morris—pratt algorithm
      

  11.   


    package cn.jinyang;public class Test {
    public static void main(String[] args) {
    String str = "abbcdef33";
    System.out.println(subStr(str, 3,4));
    }
    /**
     * 
     * @param sou
     * @param f 开始位置
     * @param l 截取长度
     * @return
     */
    static String subStr(String sou, int f, int l){
    String s = "";
    int len = sou.length();
    if(f > len){
    return sou;
    }
    l = (len - f < l) ? (len-f) : l;

    for (int i = f; i < l+f; i++) {
    s += sou.charAt(i);
    }
    return s;
    }
    }
      

  12.   

    var r='abbcdef33';
    var len=r.length;
    for(var i=0;i<len;i++)
    {
      if(r[i]=='a'||r[i]=='b'||r[i]=='3')
    {
       r=r.replace(r[i],'');
    }
    }
      

  13.   

    我咋觉得这问题绕来绕去,那人就想问你substr的实现方法呢
      

  14.   

    个人认为人家题目的意思是去掉有重复的字符.
    如果是针对“abbcdef33”和"abb33", 我还不如直接return "cdef"呢. 
      

  15.   

    System.out.println("abbabbcdef33 ".replaceAll("a", "").replaceAll("b", "").replaceAll("3", ""));既然只针对这个字符串。
      

  16.   


    思维很严谨的程序开发人员,import java.lang.*;     学习这种思维方式
      

  17.   

    RT:有这样一串字符串“abbcdef33”,截取掉“abb33”,还不能用substring等方法,问怎么做最快?如果只是针对这个字符串的话,直接用replaceAll就OK了,需要那么麻烦吗。String  str1 = "abbcdef33";
    String  str3 = str1.replaceAll("abb", "").replaceAll("33", "");
    System.out.println(str3);
      

  18.   

    --嘻嘻,在54楼的基础上改下,给分吧~
    String  str1 = "abbcdef33";
    String  str3 = str1.replaceAll("^abb|33$", "");
    System.out.println(str3);
      

  19.   

    其实java的replaceAll也是用正则表达式实现的,不过用起来简单,而且容易理解