如何删除字符串中特定字符之间的空格?

Sco*_*ott 3 c# string

所以我有一个像这样的字符串:

string sampleString = "this - is a string   - with hyphens  -     in it";
Run Code Online (Sandbox Code Playgroud)

这里要注意的是连字符的左侧和右侧有一个随机数量的空格.目标是用连字符替换我的字符串中的空格(因此字符串中的超量问题).所以我追求的结果应该是这样的:

"这 - 是 - 一个字符串,用连字符功能于它".

目前我正在使用:

sampleString.Trim().ToLower().Replace(" ", "-")
Run Code Online (Sandbox Code Playgroud)

但这导致以下输出:

"这是 - - 一个字符串------用连字符--------中,它"

寻找最干净,最简洁的解决方案.

谢谢!

jas*_*son 9

因为每个人都会提出一个正则表达式解决方案,我会向您展示一个非正则表达式解决方案:

string s = "this - is a string   - with hyphens  -     in it";
string[] groups = s.Split(
                       new[] { '-', ' ' },
                       StringSplitOptions.RemoveEmptyEntries
                  );
string t = String.Join("-", groups);        
Run Code Online (Sandbox Code Playgroud)

  • 如果这是一个使用正则表达式解决问题同样容易解决的问题,那么就无需使用更简单,易于理解的解决方案.+1. (2认同)

Har*_*ber 6

尝试使用System.Text.RegularExpressions.Regex.

只需致电:

Regex.Replace(sampleString, @"\s+-?\s*", "-");
Run Code Online (Sandbox Code Playgroud)