我正在尝试编写一个简单的程序,它接受一个文本文件,将所有字符设置为小写并删除所有标点符号。我的问题是,当有回车(我相信它就是所谓的)和新线时,空间被移除。
即
这是一个 测试句
变为
这是atestsentence
第一行的最后一个单词和下一行的第一个单词将被连接。
这是我的代码:
public static void ParseDocument(String FilePath, String title)
{
StreamReader reader = new StreamReader(FilePath);
StreamWriter writer = new StreamWriter("C:/Users/Matt/Documents/"+title+".txt");
int i;
char previous=' ';
while ((i = reader.Read())>-1)
{
char c = Convert.ToChar(i);
if (Char.IsLetter(c) | ((c==' ') & reader.Peek()!=' ') | ((c==' ') & (previous!=' ')))
{
c = Char.ToLower(c);
writer.Write(c);
}
previous = c;
}
reader.Close();
writer.Close();
}
这是一个简单的问题,但我想不出一种检查新行来插入空格的方法。非常感谢任何帮助。
答案 0 :(得分:2)
取决于你想如何处理空行,但这可能有效:
char c = Convert.ToChar(i);
if (c == '\n')
c = ' '; // pretend \n == ' ' and keep ignoring \r
if (Char.IsLetter(c) | ((c==' ') & reader.Peek()!=' ') | ((c==' ') & (previous!=' ')))
{
...
我希望这是一项练习,在正常练习中,您会阅读包含System.IO.File.ReadAllLines()
或System.IO.File.ReadLines()
答案 1 :(得分:0)