所以我有一个执行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”来确定。
答案 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
成为你想要的吗?