|
题目描述:
在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数:
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;
}
System.out.println(result+"_"+(ary.length-1));
}
} |
|
|