C#如何替换字符串中指定子串',0'之后的所有内容为空
C#实现截取指定子串后内容的方案
你当前的需求不需要用Replace方法做替换,核心是定位目标子串的位置后做字符串截取即可,以下是两种可直接使用的实现方式:
方法1:IndexOf + Substring(推荐,鲁棒性更好)
先查找",0"子串首次出现的位置,确认子串存在后,截取从字符串开头到该子串末尾的部分,自动丢弃后面所有内容,同时避免子串不存在时的索引报错问题。
string myString = "This looks like 100,02 while others don't"; // 查找目标子串的起始索引 int targetPosition = myString.IndexOf(",0"); if (targetPosition != -1) { // 截取长度 = 子串起始位置 + 子串自身长度2,保留",0"本身 myString = myString.Substring(0, targetPosition + 2); }
运行后myString的输出即为目标结果:"This looks like 100,0"
补充说明:如果你需要匹配字符串中最后一次出现的
",0"子串做截断,只需要把上述代码里的IndexOf替换为LastIndexOf即可。
方法2:Split拆分拼接(写法更简短)
以",0"为分隔符把字符串拆成数组,取第一部分拼接回",0"即可得到结果,注意该方法需要提前判断子串是否存在,否则会在原字符串末尾多拼接出无效的",0"。
string myString = "This looks like 100,02 while others don't"; if (myString.Contains(",0")) { myString = myString.Split(",0")[0] + ",0"; }
内容的提问来源于stack exchange,提问作者Vika
相关产品推荐
相关产品推荐

