解析文本文件,处理新行?

时间:2012-04-16 16:25:54

标签: c#

我正在尝试编写一个简单的程序,它接受一个文本文件,将所有字符设置为小写并删除所有标点符号。我的问题是,当有回车(我相信它就是所谓的)和新线时,空间被移除。

  

这是一个   测试句

变为

  

这是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();
    }

这是一个简单的问题,但我想不出一种检查新行来插入空格的方法。非常感谢任何帮助。

2 个答案:

答案 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)

尝试

  

myString.Replace(Environment.NewLine,“替换文字”)

Replace Line Breaks in a String C#