C#高手求救啊.....怎么取到这个空格

royler 2010-11-01 11:04:52
有一个字符串 ABC 1 2 3456
怎么去掉两数字中间的空格(字母和数字之间的不需要去掉)
想了好长时间也不行
...全文
254 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
LorenLiu 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qiuxin425 的回复:]
字符串替换函数
string s="ABC 1 2 3456";
string strCurVal = s.Replace(" ", "");
[/Quote]

这个最简单了吧
HaveOneDream 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q107770540 的回复:]
C# code

//修改了一下正则,匹配更严谨一点
void Main()
{
string s="ABC 1 2 3456";
s=new string(s.Split().Aggregate((a,b)=>(Regex.IsMatch(a,@"^\d+$") && Regex.IsMatch(b,@"^\d+$"))?a+b:a+" "+b).ToCharArra……
[/Quote]
正解,s=new string(s.Split().Aggregate((a,b)=>(Regex.IsMatch(a,@"^\d+$") && Regex.IsMatch(b,@"^\d+$"))?a+b:a+" "+b).ToCharArra
可以分步写,太长可读性不强
qiuxin425 2010-11-01
  • 打赏
  • 举报
回复
字符串替换函数
string s="ABC 1 2 3456";
string strCurVal = s.Replace(" ", "");
烈火蜓蜻 2010-11-01
  • 打赏
  • 举报
回复
string s="ABC 1 2 3456";
s = Regex.Replace(s, @"(\d+)[ ]*(\d+)", "$1$2");
q107770540 2010-11-01
  • 打赏
  • 举报
回复

//修改了一下正则,匹配更严谨一点
void Main()
{
string s="ABC 1 2 3456";
s=new string(s.Split().Aggregate((a,b)=>(Regex.IsMatch(a,@"^\d+$") && Regex.IsMatch(b,@"^\d+$"))?a+b:a+" "+b).ToCharArray());
Console.Write(s);

}
/*
ABC 123456
*/
gaozhigang 2010-11-01
  • 打赏
  • 举报
回复
用正则表达式
q107770540 2010-11-01
  • 打赏
  • 举报
回复

void Main()
{
string s="ABC 1 2 3456";
s=new string(s.Split().Aggregate((a,b)=>(Regex.IsMatch(a,@"\d") && Regex.IsMatch(b,@"\d"))?a+b:a+" "+b).ToCharArray());
Console.Write(s);

}

//结果:
//ABC 123456

royler 2010-11-01
  • 打赏
  • 举报
回复
楼下的接板凳
dobdream 2010-11-01
  • 打赏
  • 举报
回复
use {Zero-Width Positive Lookbehind Assertions} and {Zero-Width Positive Lookahead Assertions}
即零宽度正回顾后发断言和零宽度正预测先行断言
ermuzi 2010-11-01
  • 打赏
  • 举报
回复
用正则表达式
Regex.Replace("ABC 1 2 3456",@"(?<=\d)\s+(?=\d|$)","");
的确方便
abc877364237 2010-11-01
  • 打赏
  • 举报
回复
rabbit5 2010-11-01
  • 打赏
  • 举报
回复
用正则表达式

我每次都是现用现找,用完了就忘:P。 向楼上各位高人学习:)
xh_mlj 2010-11-01
  • 打赏
  • 举报
回复
没什么说的了,大家已经写了N多方法
兔子-顾问 2010-11-01
  • 打赏
  • 举报
回复
如果最后数字后面的空格也要删掉。

string result = Regex.Replace("ABC 1 2 3456",@"(?<=\d)\s+(?=\d|$)","");
兔子-顾问 2010-11-01
  • 打赏
  • 举报
回复
结果
ABC 123456
兔子-顾问 2010-11-01
  • 打赏
  • 举报
回复
string result = Regex.Replace("ABC 1 2 3456",@"(?<=\d)\s+(?=\d)","");


result就是你要的?
xcliang2004 2010-11-01
  • 打赏
  • 举报
回复
string strCurVal = s.Replace(" ", "");
longhair9711 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q107770540 的回复:]
C# code

//修改了一下正则,匹配更严谨一点
void Main()
{
string s="ABC 1 2 3456";
s=new string(s.Split().Aggregate((a,b)=>(Regex.IsMatch(a,@"^\d+$") && Regex.IsMatch(b,@"^\d+$"))?a+b:a+" "+b).ToCharArra……
[/Quote]

很好
wackyboy 2010-11-01
  • 打赏
  • 举报
回复

Regex.Replace(str, @"(?<=[0-9])\s+(?=[0-9])", "");
zhao_zps 2010-11-01
  • 打赏
  • 举报
回复
学习。。。。
加载更多回复(5)

110,538

社区成员

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

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

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