2016-07-06 18 views
1

forループを処理するプログラムを用意しています。すべての文字を1つずつ読み込み、case文を使用して特定の文字に対応する4桁の数字に置き換えます。C# - NewLine文字を文字列で読み取る場合

私の問題は、NewLine文字( '\ n')を読んでいないことと、これを修正する方法がわかりません。

は、ここに私のコードです:

for (int i = 0; i < inputTextBox.Text.Length; i++) 
     { 
      //Encryption 
      switch (inputTextBox.Text[i]) 
      { 
       // I got rid of the rest of the cases 
       // as they are not relevant 
       case '\n': 
        encryptedString = encryptedString + "8024"; 
        break; 
      } 
     } 

し、それが文字として改行を受け付けていないので、それはencryptedStringに追加されません。

これは重複した質問のように見えるかもしれませんが、私が見つけた他の投稿は実際はまったく別の状況です。

EDIT --------------------------------------------- -------------------------------------------------- ----------------------------- デバッグ後、実際には '\ n'が読まれていませんそれをデコードするときに文字列に書き込む。ここ

は、復号化部のためのコードです:

  for (int i = 0; i < readString.Length; i = i + 4) 
      { 
      //Decryption 
      switch (readString.Substring(i, 4)) 
      { 
       case "8024": 
        decryptedString = decryptedString + "\n"; 
        break; 
      } 
     } 
     inputTextBox.Text = decryptedString; 

だから、 "decryptedString = decryptedString + "\ n個に達しています";"何らかの理由で文字列に新しい行を追加していないだけです。私はまた、確かに "\ n"の代わりに "\ n"を試しました。

+2

まあ、明白な質問は...あなたのテキストボックスに改行がありますか(複数行ですか?)サイドノート:StringBuilderを使用し、文字列を連結すると非常に効率が悪いです。 –

+0

私は簡単なテストを行い、それは私のために働いています(つまり、そのケースに当たっています)。あなたはデバッグを試みましたか? ''\ n' 'のためにあなたのケースに当たったのですか?私は "なぜこのコードは機能していないのですか"という話題としてこれを閉じようとしています。 –

+0

@roryap今質問を編集しましたが、実際に文字列に新しい行が追加されていないので、うまくいけば助けてください。 – TacoMakerMan

答えて

3

"System.Environment.NewLine"で改行をデコードするときに "\ n"を置き換えて問題を修正しました。

+0

あなたが自分で見つけたことをうれしく思います –

-2

最初に新しい行をこれに置き換えてみてくださいRegex.Replace(inputTextBox.Text, "\r\\D\n?|\n\\D\r?", "\n");
編集:正常に機能していませんか?

まず文字列この使用

第三
第四

:encryptedstringがある場合examlpeについては

encryptedString = Regex.Replace(encryptedString, "\r\\D\n?|\n\\D\r?", "\n"); 
encryptedString = encryptedString.Replace("\n", "8024"); 

がencryptedStringを行います= First string8024second80243rd8024fourthがあることですあなたは何ですか?欲しい?

関連する問題