题目描述:
在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数:
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));
}
}
分享到:
相关推荐
【华为OD机试真题2023JAVA】寻找符合要求的最长子串.html
【免费题库】华为OD机试 - 寻找相同子串(Java & JS & Python & C & C++).html付费专栏内容,免费下载,多种语言解法
华为od算法题,100分题-最多提取子串数目-Java解法
多种语言解法,粉丝可免费领取题库体验卡,请私信获取,私信获取体验卡 2024版华为OD机试题库,包含C、D卷所有真题,粉丝可领取体验卡免费看题,包含面试手撕代码等等内容
公共子串计算,输入两个字符串,忽略大小写,输出公共子串的最大长度
【免费题库】华为OD机试 - 求满足条件的最长子串的长度(Java & JS & Python & C & C++).html
【免费题库】华为OD机试 - 最长的指定瑕疵度的元音子串(Java & JS & Python & C & C++).html
华为od模拟题+最长回文子串+两种解题思路
华为OD机试【求满足条件的最长子串的长度】
面对华为OD的技术面试,你是否感到紧张和无助? 别担心,这篇文章为你带来了华为OD机试的真题全解析。通过具体的编程题目,文章不仅提供了解题思路,还详细讲解了如何一步步实现代码。 无论是链表问题还是数组问题...
私信博主获取三天体验卡,免费看所有华为OD真题、考试报告、手撕代码、面试记录
私信博主免费看所有华为OD真题、考试报告、手撕代码、面试记录
私信博主免费获取三天体验卡,可以观看所有OD真题、手撕代码、面试记录、考试报告
私信博主免费获取真题解析以及代码
问题描述:删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。 分析:该问题要求写一个函数 delete_sub_str,删除原串中所有出现的子串,并返回删除的子串个数。函数的参数包括原串、子串和...
私信博主获取三天体验卡,免费看所有华为OD真题、考试报告、手撕代码、面试记录
私信博主免费获取真题解析以及代码
2013年华为校园招聘机试题及个人答案 2013年华为校园招聘机试题及个人答案
多种语言解法,粉丝可免费领取题库体验卡,请私信获取,私信获取体验卡 2024版华为OD机试题库,包含C、D卷所有真题,粉丝可领取体验卡免费看题,包含面试手撕代码等等内容
私信博主获取三天体验卡,免费看所有华为OD真题、考试报告、手撕代码、面试记录