从字符串数组中删除空行
本文关键字:删除 字符串 数组 | 更新日期: 2024-10-31 03:02:43
我正在尝试从文本文件中获取一个包含单个单词的字符串数组。但是,数组中填充了一些空行。知道我如何在没有这些空行的情况下制作字符串数组吗?
WebClient client = new WebClient();
Stream stream = client.OpenRead("https://gist.githubusercontent.com/Quackmatic/f8deb2b64dd07ea0985d/raw/macbeth.txt");
StreamReader reader = new StreamReader(stream);
string[] content = reader.ReadToEnd().Split('?', '!', ' ', ''n', '[', ']', '.');
for (int i = 0; i < 5; i++)
{
Console.WriteLine(content[i]);
}
Console.ReadLine();
您可以尝试Split()
方法重载,该方法重载将StringSplitOptions
作为值为 RemoveEmptyEntries
的第二个参数。则返回值不包括包含空字符串的数组元素。
var result = reader.ReadToEnd()
.Split(new[] {'?', '!', ' ', ''n', '[', ']', '.'} , StringSplitOptions.RemoveEmptyEntries);
顺便说一下,在此之后,您可以为所有元素调用Trim()
,因为RemoveEmptyEntries
不认为字符串" "
为空。因此,如果要丢弃空字符串,可以将其添加到代码中:
var result = reader.ReadToEnd()
.Split(new[] {'?', '!', ' ', ''n', '[', ']', '.'} , StringSplitOptions.RemoveEmptyEntries)
.Where(x => !string.IsNullOrWhiteSpace(x.Trim())
.ToArray();
当您调用Split
时,您可以使用其他答案中详述的选项进行操作。但是,如果您不是,并且想使用 linq 从数组中删除空行:
content = content.Where(s => s != "").ToArray();