我正在构建一个输入txt文件的应用程序,作为输出,它会生成一个包含所有单词的txt文件,并计算每个单词重复的次数。我已经处理了计算单词,但我在阅读文件时遇到了问题。更准确地说,当我编写测试txt文件时,当我使用Enter进入下一行时,它在app中运行良好。我会发布代码和结果以使事情变得清晰。
string text = File.ReadAllText(@"C:\\Users\\derka\\Documents\test.txt");
string[] array = text.Split(' ', ',', '.', ':', '\t');
,输出
你好,2 世界,2 世界 咕咕,1 cooo,1预期的结果是看世界,3。我也试过使用Regex,但我似乎无法弄清楚如何使用我用于正则表达式的foreach循环填充数组。建议?以下是我用于测试的文件的内容
你好世界世界你好世界
coo cooo
答案 0 :(得分:1)
问题是,您忽略 Split 调用中的换行符。 因此,您应该将 \ r 和 \ n 添加到您的通话中。
string[] array = text.Split(' ', ',', '.', ':', '\t', '\n', '\r');
这将返回数组中的空字符串,因为如果换行符类似于默认的c#one Environment.NewLine
,它代表字符串"\r\n"
。
但是您可以在array
的以下处理中忽略空字符串。
答案 1 :(得分:0)
拆分前删除新行
text = text.Replace(Environment.NewLine, " ");