C# - 通过逐字符读取字符串来读取NewLine字符

时间:2016-07-06 12:42:44

标签: c# visual-studio switch-statement character newline

所以我有一个执行for循环的程序,逐个读取每个字符,并使用case语句将其替换为与该特定字母相关的四位数字。

我的问题是它没有读取NewLine字符('\ n'),我不知道如何解决这个问题。

这是我的代码:

<bundle_path>/Resources/views/

由于它不接受新行作为字符,因此不会将其添加到encryptedString。

这似乎是一个重复的问题,但我发现的其他帖子实际上处于完全不同的情况。

EDIT ---------------------------------------------- -------------------------------------------------- ---------------------------- 因此,在调试之后,事实证明它实际上正在读取'\ 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;
            }
        }

所以它到达“decryptedString = decryptedString +”\ n“;”它只是因为某种原因没有在字符串中添加新行。我还试过'\ n'而不是“\ n”来确定。

2 个答案:

答案 0 :(得分:3)

我替换了&#34; \ n&#34;使用&#34; System.Environment.NewLine&#34;解码换行符时它解决了这个问题。

答案 1 :(得分:-2)

首先尝试使用此Regex.Replace(inputTextBox.Text, "\r\\D\n?|\n\\D\r?", "\n");替换新行
编辑:你确定它不起作用吗?
对于examlpe,如果encryptedstring是:

  

第一个字符串
  第二
  第三
  第四

使用此:

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

将使encryptedString = First string8024second80243rd8024fourth成为你想要的吗?