我有一个类似于“foo-bar ---- baz - biz”的字符串
消除无关紧要的重复字符(-
)并使字符串“foo-bar-baz-biz”的最简单,最快捷的方法是什么?
我尝试过像.Replace("--","-")
这样的事情,但这似乎只是有点工作..我必须在循环中运行才能完全完成它,我知道有更好的方法。
最好的方法是什么?
答案 0 :(得分:10)
试试这个,
string finalStr = string.Join("-", x.Split(new[] { '-' }, StringSplitOptions.RemoveEmptyEntries))
如果将其转换为Extension method
static class StringExtensions
{
public static string RemoveExtraHypen(this string str)
{
return string.Join("-", str.Split(new []{'-'}, StringSplitOptions.RemoveEmptyEntries));
}
}
使用
private void SampleDemo()
{
string x = "foo-bar----baz--biz";
Console.WriteLine(x.RemoveExtraHypen());
}
答案 1 :(得分:4)
尝试Regex
类
using System.Text.RegularExpressions;
string input = "foo-bar----baz--biz";
Regex regex = new Regex("\\-+");
string output = regex.Replace(input, "-");
答案 2 :(得分:0)
非常简单的解决方案:)
private string RemoveDuplicates(string s, char toRemove)
{
if (s.Length <= 1) return s;
char s1,s2;
string result="";
result = s[0].ToString();
s1 = s[0];
for (int i = 0; i < s.Length-1; i++)
{
s2 = s[i + 1];
if ( s2.Equals(toRemove)&& s1.Equals(s2))
{
s1 = s[i];
continue;
}
result += s2.ToString();
s1 = s[i + 1];
}
return result;
}
string s = RemoveDuplicates(“f --- oo-bar ---- baz - biz”,' - ');