我正在读取文本文件中的所有行到名为"masterToken"的列表,我正在尝试删除列表中的所有空格(文本文件中的所有空格).masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();是我目前正在尝试使用的,它不起作用.
有什么问题masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();和/或有没有更好的方法来实现我想要的东西?
谢谢
public static void Lex()
{
List<string> masterToken = File.ReadAllLines("C:\\Users\\Theo\\Documents\\Visual Studio 2017\\Projects\\Interpreter\\test.txt").ToList();
foreach (var item in masterToken)
{
Console.Write(item.ToString());
}
masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();
Console.WriteLine("");
foreach (var item in masterToken)
{
Console.Write(item.ToString());
}
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
我建议你用空字符串Regex.Replace替换每个空格序列\s+.使用此方法生成新字符串并将结果保存到列表:
masterToken = masterToken.Select(t => Regex.Replace(t, @"\s+", "")).ToList();
Run Code Online (Sandbox Code Playgroud)
请注意,如果您只想删除前导和尾随空格,那么最好使用Trim():
masterToken = masterToken.Select(t => t.Trim()).ToList();
Run Code Online (Sandbox Code Playgroud)
请记住,既Trim不会Replace也不会修改原始字符串 - 所有这些方法都会返回新的字符串实例.
小智 5
替换这一行:
masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();
Run Code Online (Sandbox Code Playgroud)
这样:
masterToken.ForEach(s => s = s.Replace(" ",""));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5440 次 |
| 最近记录: |