给出c#代码:
string foo = @"
abcde
fghijk";
我正在尝试删除所有格式,包括行之间的空格。
到目前为止代码
foo = foo.Replace("\n","").Replace("\r", "");
但第2行和第3行之间的空白仍然有效。
我假设正则表达式是唯一的解决方案吗?
感谢。
答案 0 :(得分:4)
我假设你想保留多行,如果没有,我会选择CAbbott的answer。
var fooNoWhiteSpace = string.Join(
Environment.NewLine,
foo.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.Select(fooline => fooline.Trim())
);
foo.Split
),fooline.Trim()
)),string.Join
)。答案 1 :(得分:3)
您可以使用正则表达式:
foo = Regex.Replace(foo, @"\s+", "");
答案 2 :(得分:1)
这个怎么样?
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();
}
这应该删除所有内容。
答案 3 :(得分:0)
如果空格是所有空格,则可以使用
foo.Replace(" ", "");
对于其中可能存在的任何其他空格,请执行相同操作。示例:
foo.Replace("\t", "");
答案 4 :(得分:0)
只需添加一个Replace(" ", "")
处理字符串文字,这意味着所有空格都是字符串的一部分。
答案 5 :(得分:0)
尝试这样的事情:
string test = @"
abcde
fghijk";
编辑:添加代码仅过滤掉空格。
string newString = new string(test.Where(c => Char.IsWhiteSpace(c) == false).ToArray());
产生以下内容:abcdefghijk
答案 6 :(得分:0)
我写了类似于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();
我希望能帮到某人