0

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

IE

这是一个
测试语句

变成

这是见证

第一行的最后一个单词和下一行的第一个单词连接在一起。

这是我的代码:

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

这是一个简单的问题,但我想不出一种检查新行以插入空格的方法。任何帮助是极大的赞赏。

4

2 回答 2

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()

于 2012-04-16T16:34:48.920 回答
0

尝试

myString.Replace(Environment.NewLine, "替换文本")

替换字符串 C# 中的换行符

于 2012-04-16T16:29:49.500 回答