我也有類似的字符串「富酒吧巴茲---- - 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 –