2016-12-02 18 views
3

私は、テキストファイル、カンマで区切られた単語、およびその他の句読点で作業する必要のあるC#のための義務を持っています。私はこのようにそれを行うことを選択:...c#句読点を追加する

string Book1 = "@\\..\\Knyga1.txt"; 
string punctuation = " ,.?!;:\""; 
string Read1 = File.ReadAllText(Book1); 
string[] FirstFileWords = Read1.Split(punctuation.ToCharArray()); 

しかし、私は私のテキストファイルをブックのようなことになっている...問題に遭遇してきたので、明らかに複数の行があるように起こっていることはどんながあります「Enterキー」を追加するか、句読点の1つに新しい行(私の悪い英語には申し訳ありません)を作るために何かを呼び出すことになりますか?後で個々の単語で作業する場合、たとえば最も長い単語を印刷する場合、行2 3の先頭にある単語などはコンソールで2行取ります。

+0

レコードの「エンターキー」も、それは通常、両方のWindowsではキャリッジリターンや改行 – Fuzzybear

+2

@Fuzzybearとして知られています。 – juharr

答えて

5

\r\nをリストに追加するだけです。これは「Enterキー」です。つまり、「Windows OS」の「改行」です。返されるのはEnvironment.NewLineです。

string punctuation = " ,.?!;:\"\r\n"; 

\r「は、キャリッジ・リターン」と一緒に使用された場合(MSDNページとthis SO answerなど他の場所の上で説明したように)、「改行」と呼ばれ、「改行」の\nスタンドを表します。

また、それほど一般的でない「垂直空白」文字もあります(参考のためにmy question hereを参照)。

string punctuation = " ,.?!;:\"\r\n\v\f\u0085\u2028\u2029"; 

Here's a Wikipedia articleこれらすべてを説明しますので、完全であることを、私は「垂直タブ」、「フォームフィード」、「次の行」、「行区切り」、および「段落の区切り」を含めるようにこれを行うだろうその他の空白文字。

+0

\ nと\ rの違いは何ですか?そして、キャリッジリターンは何ですか? – BligenN

+2

@BligenN \ nまたは改行元は1行だけを意味し、\ rや改行は行の先頭にあることを意味します。だから、次の行の先頭に行く必要がありました。これはタイプライターのことです。 – juharr

+1

@BligenN - 更新を参照してください。 –

4

新しいラインとキャリッジリターン文字を使用する必要があり、あなたのグループに新しい行を追加するには:

" ,.?!;:\"\r\n"; 
1

あなたは行末を入れたい場合は、あなたが試すことができ\n

1

が必要あなたは、技術的には、句読点のものではありませんされているいくつかの他の文字を追加することも、すべての句読点に

// scan all the characters an filter out punctuation ones (585): 
string punctuation = string.Concat(Enumerable.Range(0, char.MaxValue) 
    .Select(c => (char)c) 
    .Where(c => char.IsPunctuation(c))); 

を見つけるためにchar.IsPunctuationスペース改行キャリッジリターン

string punctuation = " \r\n" + 
    string.Concat(Enumerable.Range(0, char.MaxValue) 
    .Select(c => (char)c) 
    .Where(c => char.IsPunctuation(c))); 
関連する問題