我有一個字符串值如何從字符串中刪除空格?
string text = "-----------------\r\n Some text here Some text here\r\n"
有沒有一種方法,以消除在每個地方有很多空間的地方2個空格?
謝謝,你的幫助
我有一個字符串值如何從字符串中刪除空格?
string text = "-----------------\r\n Some text here Some text here\r\n"
有沒有一種方法,以消除在每個地方有很多空間的地方2個空格?
謝謝,你的幫助
編輯:這是速度,否則正則表達式由其他答案建議罰款。這個功能非常快。
編輯2:只要刪除\ r \ n如果你想保留新的行。
public static String SingleSpacedTrim(String inString)
{
StringBuilder sb = new StringBuilder();
Boolean inBlanks = false;
foreach (Char c in inString)
{
switch (c)
{
case '\r':
case '\n':
case '\t':
case ' ':
if (!inBlanks)
{
inBlanks = true;
sb.Append(' ');
}
continue;
default:
inBlanks = false;
sb.Append(c);
break;
}
}
return sb.ToString().Trim();
}
這將白色空間摺疊爲單個空間字符?或者它有什麼作用? – dtb
@dtb是的,這正是它的作用 –
這是你在找什麼?
text = text.Replace(" "," ");
如果你知道有多少空間也有,你可以使用
text.Replace(" ", " ");
Regex regex = new Regex(@"[ ]{2,}"); // Regex to match more than two occurences of space
text = regex.Replace(text, @"");
這會返回'ab.c'的'a.bc'(用空白替換'.') – I4V
您可以使用功能與string.replace:
text=text.Replace(" "," ");
但要記住,你應該在發佈前您的要求,研究了一下:這是很基本的東西。
他爲什麼會收到negavite vote?我也使用這種方法,它的工作原理!簡單,簡單,工作! – Sonhja
試試這個:
var result = new Regex("\s{2,}").Replace(text,string.Empty)
試試吧....
string _str = "-----------------\r\n Some text here Some text here\r\n";
_str = _str.Trim();
Console.WriteLine(_str.Replace(" ",""));
輸出:
SometexthereSometexthere
var dirty = "asdjk asldkjas dasdl l aksdjal;sd asd;lkjdaslj";
var clean = string.Join(" ", dirty.Split(' ').Where(x => !string.IsNullOrEmpty(x)));
如果你不喜歡正則表達式或文本是大,你可以使用這個擴展:
public static String TrimBetween(this string text, int maxWhiteSpaces = 1)
{
StringBuilder sb = new StringBuilder();
int count = 0;
foreach (Char c in text)
{
if (!Char.IsWhiteSpace(c))
{
count = 0;
sb.Append(c);
}
else
{
if (++count <= maxWhiteSpaces)
sb.Append(c);
}
}
return sb.ToString();
}
然後,它的簡單:
string text = "-----------------\r\n Some text here Some text here\r\n";
text = text.TrimBetween(2);
結果:
-----------------
Some text here Some text here
不是最好的一段代碼,但這應該從文本刪除兩個空格,如果你想使用正則表達式。
//one.two..three...four....five..... (dots = spaces)
string input = "one two three four five ";
string result = new Regex(@"\s{2,}").Replace(input, delegate(Match m)
{
if (m.Value.Length > 2)
{
int substring = m.Value.Length - 2;
//if there are two spaces, just remove the one
if (m.Value.Length == 2) substring = 1;
string str = m.Value.Substring(m.Value.Length - substring);
return str;
}
return m.Value;
});
輸出將
//dots represent spaces. Two spaces are removed from each one but one
//unless there are two spaces, in which case only one is removed.
one.two.three.four..five...
ouptput你想要什麼? – Rohit
不確定兩點之間是什麼意思? – V4Vendetta
檢查http://stackoverflow.com/questions/206717/how-do-i-replace-multiple-spaces-with-a-single-space-in-c –