我也有类似的字符串“富酒吧巴兹---- - BIZ”最简单的方法
什么是消除重复无意义的最简单,最快捷的方式字符(-
)并将字符串“foo-bar-baz-biz”?
我试过做类似.Replace("--","-")
的东西,但是这似乎只起作用。我不得不在循环中运行它来完成它,并且我知道有更好的方法。
最好的方法是什么?
我也有类似的字符串“富酒吧巴兹---- - BIZ”最简单的方法
什么是消除重复无意义的最简单,最快捷的方式字符(-
)并将字符串“foo-bar-baz-biz”?
我试过做类似.Replace("--","-")
的东西,但是这似乎只起作用。我不得不在循环中运行它来完成它,并且我知道有更好的方法。
最好的方法是什么?
试试这个,
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());
}
尝试Regex
类
using System.Text.RegularExpressions;
string input = "foo-bar----baz--biz";
Regex regex = new Regex("\\-+");
string output = regex.Replace(input, "-");
嗯..我觉得用正则表达式很容易,但不知道如何构造它..我不知道是否有一个比较简单的解决方案不使用正则表达式 – Earlz
很简单溶液:)
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;
}
字符串s = RemoveDuplicates( “F --- OO-酒吧----巴兹 - 商业”, ' - ');
这真的不是我所说的“简单”! – Guillaume
我只是写这:) :) – estebane97
或更好的只是有像'RemoveDuplicates(这个字符串str,字符重复)的扩展方法'所以它不仅仅是这样工作:P – Earlz
@Earlz非常好的改进! :D –