[英]Remove formatting on string literal
鑒於c#代碼:
string foo = @"
abcde
fghijk";
我試圖刪除所有格式,包括行之間的空格。
到目前為止的代碼
foo = foo.Replace("\n","").Replace("\r", "");
可以工作,但第2行和第3行之間的空白仍然保留。
我假設正則表達式是唯一的解決方案?
謝謝。
我假設你想保留多行,如果沒有,我會選擇CAbbott的答案 。
var fooNoWhiteSpace = string.Join(
Environment.NewLine,
foo.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.Select(fooline => fooline.Trim())
);
foo.Split
), fooline.Trim()
)), string.Join
)。 您可以使用正則表達式:
foo = Regex.Replace(foo, @"\s+", "");
這個怎么樣?
string input = @"
abcde
fghijk";
string output = "";
string[] parts = input.Split('\n');
foreach (var part in parts)
{
// If you want everything on one line... else just + "\n" to it
output += part.Trim();
}
這應該刪除everthing。
我寫了類似於George Duckett的東西,但是把我的邏輯放到字符串擴展方法中,以便其他人更容易閱讀/使用:
public static class Extensions
{
public static string RemoveTabbing(this string fmt)
{
return string.Join(
System.Environment.NewLine,
fmt.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.Select(fooline => fooline.Trim()));
}
}
你可以這樣稱呼它:
string foo = @"
abcde
fghijk".RemoveTabbing();
我希望能有所幫助
如果空格是所有空格,則可以使用
foo.Replace(" ", "");
對於可能存在於其中的任何其他空白,請執行相同的操作。 例:
foo.Replace("\t", "");
只需添加一個Replace(" ", "")
你處理一個字符串文字,這意味着所有的空格都是字符串的一部分。
嘗試這樣的事情:
string test = @"
abcde
fghijk";
編輯 :添加代碼只過濾掉空格。
string newString = new string(test.Where(c => Char.IsWhiteSpace(c) == false).ToArray());
產生以下內容:abcdefghijk
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.