0

テキストファイルを受け取り、すべての文字を小文字に設定し、すべての句読点を削除する簡単なプログラムを作成しようとしています。私の問題は、キャリッジリターン(いわゆる)と改行があると、スペースが削除されることです。

すなわち

これは
テスト文です

になる

これは証明です

最初の行の最後の単語と次の行の最初の単語が結合されます。

これは私のコードです:

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 に答える