首页 新闻 会员 周边

处理简单的字符串,让我心碎了

0
[已关闭问题]

如题:字符串    1,2,3,4,5,6  现在要删除其中的一个或多个 比如:2或2,3,4  让他变成

1,3,4,5,6 或1,5,6

我的思路 是:用Replace (",2”," ")   可是如果他删除的是第一位呢?又或着是最后一位呢??

like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2010-04-20 17:44
< >
分享
其他回答(4)
0

1,2,3,4,5,6

让它变成
,1,2,3,4,5,6,

再Replace(“,2,”,",")变成 ,1,3,4,5,6,

再变回

1,3,4,5,6

办法看起来好像是笨了点

alby | 园豆:323 (菜鸟二级) | 2010-04-20 18:05
0

1.replace 两次(第一次是数字,第二次是两个逗号)

 

2.通过正则表达式去replace

Ider | 园豆:210 (菜鸟二级) | 2010-04-20 18:21
如果他删除的是第一位呢?又或着是最后一位呢?? 哪来的两个逗号?
支持(0) 反对(0) alby | 园豆:323 (菜鸟二级) | 2010-04-23 16:47
0

先使用 split 拆分为字符串数组。

再删除数组中的元素。

最后,使用 string.join 重新连接起来。

冠军 | 园豆:886 (小虾三级) | 2010-04-20 21:03
0

直接用正则吧.

private void Form1_Load(object sender, EventArgs e)
{
//1.简单说明
string part1 = "(^,?[136],?)";
string part2 = "((?<=[^136],?)[136],?)";
string part3 = "(,?[136]$)";
string all = string.Format("{0}|{1}|{2}",part1,part2,part3);
string result = Regex.Replace("1,2,3,4,5,6",all , "");
MessageBox.Show(result);
//2.整理成方法,直接调用
MessageBox.Show(ReplaceSimpleStr("1,2,3,4,5,6","136"));
//3.总结:方法不一定是最好的,但是有效.
//输出结果都是:2,4,5
}

/// <summary>
/// 替换字符
/// </summary>
/// <param name="input1">用逗号分隔的字符串</param>
/// <param name="input2">需要替换掉的字符集</param>
/// <returns></returns>
public string ReplaceSimpleStr(string input1, string input2)
{
string expression = string.Format("(^,?[{0}],?)|((?<=[^{0}],?)[{0}],?)|(,?[{0}]$)", input2);
return Regex.Replace(input1, expression, "");
}

 

三阶 | 园豆:1436 (小虾三级) | 2010-04-21 11:01
如果不是1,2,3,4,5,6 而是 1,11,2,3,4,5,16 如果要去掉1,结果会怎么样呢?
支持(0) 反对(0) alby | 园豆:323 (菜鸟二级) | 2010-04-23 16:51
0

用数组与或正则表达式可能比较好, 如果单纯的repalce就是实现起来也复杂好多了

风浪 | 园豆:2996 (老鸟四级) | 2010-04-21 17:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册