`
meohao
  • 浏览: 94860 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

华为8.24号删除子串面试题解决方案

阅读更多
题目描述:
在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数:
int delete_sub_str(const char *str, const char *sub_str, char *result_str)
【输入】 str:输入的被操作字符串
         sub_str:需要查找并删除的

方案一:
package cn.com.huawei;


public class HWTest
{

public static void main(String[] args)
{
System.out.println(new SWTest().deleteSubStr("abc123dedf123", "123"));
}
public String deleteSubStr(String str,String sub_str){
assert(str==null);
assert(sub_str==null);
int count=0;
while (str.indexOf(sub_str)>=0)
{
str=str.substring(0,str.indexOf(sub_str))+str.substring(str.indexOf(sub_str)+sub_str.length(),str.length());
count++;
}
return str+"_"+count;
}
}
方案二:
package cn.com.huawei;

public class TestReplace
{
public static void main(String[] args)
{

System.out.println(new TestReplace()
.deleteSubStr("abc123edf123", "123"));
}

public String deleteSubStr(String str, String sub_str)
{
assert (str == null);
assert (sub_str == null);
int count = 0;

while (str.contains(sub_str))
{
str = str.replaceFirst(sub_str, "");
count++;
}
str = str + "_" + count;
return str;
}
}
方案三:
package cn.com.huawei;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexTest {

    public static void main(String args[]){
        String str = "abc123edf123123";

        Pattern p = Pattern.compile("123");
        Matcher m = p.matcher(str);
        int count = 0;

        while(m.find()){
              count ++;
        }
      String result=m.replaceAll("");
      System.out.println(result+"_"+count);
   
    }
}
方案四:
package cn.com.huawei;

public class TestSplit
{
public static void main(String[] args)
{

String str = "abc123edf123123123";

int count = 0;
String[] ary = str.split("123",1000);
String result="";
for(int i=0;i<ary.length;i++)
{
result+=ary[i];
}
System.out.println(result+"_"+(ary.length-1));
}
}



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics