C#如何删除字符串中的一部分?

baibaip3 2012-04-12 08:30:19
string a="1,102,233,16,...10,11,12,";
这样的一个没有规律的但不会重复的字符串
我想删除其中 比如 ,233怎么写
...全文
8560 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
herenke123 2012-10-30
  • 打赏
  • 举报
回复
别忘了更新原来字符串就可以了...
baibaip3 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 5 楼 的回复:
如果找位置的话 比如找233 那要是字符串是这样的 1,1233,233,3233, 怎么办啊


C# code

string str = "1,1233,233,3233";
Regex reg = new Regex(@"\b233,");
Console.WriteLine(r……
[/Quote]
才是正解
Luohui109 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
第一,IndexOf找233的位置,然后从这个位置开始删除Remove
第二,Replace,吧233替换成"",空字符串
[/Quote]

正解~
youzelin 2012-04-12
  • 打赏
  • 举报
回复
这种 easy 的问题一个回答就够了,重复回答木有意义,到了 #3 就已经可以了。
zhaokun521 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

如果找位置的话 比如找233 那要是字符串是这样的 1,1233,233,3233, 怎么办啊
[/Quote]
你可以先split(',')
再移除string [] 中的某一项啊
lanxiaoajn 2012-04-12
  • 打赏
  • 举报
回复
if(a.startwith("233,"))
{
a=a.subString(4);
}
else if(a.endWith(",233"))
{
a=a.subString(0,a.length-4)
}
else if(a=="233")
{
a="";
}
else
{
a=a.Replace(",233,",",");
}
mohugomohu 2012-04-12
  • 打赏
  • 举报
回复
substring妥妥的
test2050 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
不用麻烦
if (a.endwith(",233")) then
{
a=a.Replace("233,","");
a=a.substring(a,0,a.length-4);
}
else
{
a=a.Replace(",233,",",");
}
代码没测试哦,写个大意啦
[/Quote]
a=a.Replace("233,","");改成
a=a.Replace(",233,",",");
瑞卡哥哥 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 的回复:]
string result1 = string.Join(",", s.Split(",").Where(x => x != "3").ToArray()); //去掉3。
[/Quote]
Split的参数是char 你引号打单引号才对
test2050 2012-04-12
  • 打赏
  • 举报
回复
不用麻烦
if (a.endwith(",233")) then
{
a=a.Replace("233,","");
a=a.substring(a,0,a.length-4);
}
else
{
a=a.Replace(",233,",",");
}
代码没测试哦,写个大意啦
誰是方長 2012-04-12
  • 打赏
  • 举报
回复
觉得2楼的方法好点/.
huangwenquan123 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
如果找位置的话 比如找233 那要是字符串是这样的 1,1233,233,3233, 怎么办啊
[/Quote]

string str = "1,1233,233,3233";
Regex reg = new Regex(@"\b233,");
Console.WriteLine(reg.Replace(str, ""));//1,1233,3233
逍遥蜂 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

第一,IndexOf找233的位置,然后从这个位置开始删除Remove
第二,Replace,吧233替换成"",空字符串
[/Quote]

正解
baibaip3 2012-04-12
  • 打赏
  • 举报
回复
如果找位置的话 比如找233 那要是字符串是这样的 1,1233,233,3233, 怎么办啊
baibaip3 2012-04-12
  • 打赏
  • 举报
回复
我觉得我说的已经挺明白的啦
如果只是简单的replace 会把不想删的都删掉的啊!
yanele 2012-04-12
  • 打赏
  • 举报
回复
a=a.Replace("233,","");
bdmh 2012-04-12
  • 打赏
  • 举报
回复
第一,IndexOf找233的位置,然后从这个位置开始删除Remove
第二,Replace,吧233替换成"",空字符串
yanele 2012-04-12
  • 打赏
  • 举报
回复
用替换吧,将233,替换成''.
義東 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 的回复:]
引用 26 楼 的回复:
C# code

string s="1,2,233,12,234,455,356";
string newStr=(","+s+",").Replace(","+"233"+",",",");
newStr=newStr.Substring(1,newStr.Length-2);

这个我认为不妥 因为 被查找字符串 可能出现在 头部 尾部
[/Quote]
头部,尾部都可以的,因为在字符串前后都已经加了","号了,最后这一句newStr.Substring(1,newStr.Length-2);就是将前后逗号去掉
baibaip3 2012-04-12
  • 打赏
  • 举报
回复
哦 这样啊 多谢各位的指导 我觉得那个正则 已经够用了呵呵
加载更多回复(14)

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧