假设创建了一个字符串,例如:string s =“ This \\ n是新的注视”

上面的代码中有一个\\ n,它是一个换行符,可以通过在双引号前使用@或使用\\进行转义。

我的困惑是:

一种。 假设此值是从输入框中输入到代码中的,则\\ n被视为普通字符串(自动获取\\ n),而不是换行符。

b。 如果我们将文本框值分配给多行文本框或标签,则相同,该值将被视为\\ n并输出为\\ n而不是换行符。

请问这个概念有什么参考。

#1楼 票数:1 已采纳

转义字符在编译时进行处理。 这意味着程序的编译版本不包含任何转义字符。

@""表示法也是如此:它只是改变了编写程序时为字符串提供数据的方式,并不包含在已编译的程序中。

在文本框中输入的数据不会经过转义字符处理,因此输入\\n实际上是一个包含字符'\\''n'的字符串。

#2楼 票数:1

基础:

在内存中,您可能具有以下字节:

0x41, 0x42, 0x0a, 0x00

以十进制表示,相同的存储器以

65, 66, 10, 0

如果插入为ASCII字符,则

'A', 'B', Newline, EndOfString

如果要在源代码中表达这些内容,可以编写:

string s = "AB\n"; // note: 0x00 is appended automatically

编译器将执行所有转换,并以第一个示例中的字节结束。 因此,“ \\ n”只是一种方便的方式,可以在字符串中包含特殊字符Newline /字节0x0A。

如果您通过文件,套接字或任何其他方式从另一个应用程序接收到某些信息,则实际上您会收到Bytes ,您的代码可以用上面解释的一种方式来解释这些字节

请注意:在.Net中,我们有UTF字符串,实际上每个字符都使用16Bit /两个字节,因此上述说明对C有用,但对C#并不完全正确。 但是基本原理是相同的。

  ask by helloworld translate from so

未解决问题?本站智能推荐:

1回复

删除字符串的转义字符

我对转义字符有一点问题是我从 txt 文件中读取的字符串,它们稍后在我的程序中导致错误,需要删除它们,但我似乎无法将它们过滤掉 我试过 text.Replace(@"\\r\\n") 和一个 if 语句,但我似乎无法从我的字符串中删除它们 任何想法将不胜感激
2回复

带转义字符的字符串格式

非常感谢您阅读我的主题。 我有一个命令行,希望在C#中将其格式化为字符串。 这是字符串在命令行提示符下的外观: 我想我只需要知道从run.......开始的格式,我想我可以处理fiji -eval 。 所以这不是我要格式化的内容: 如果您看不清它,我在这里重新输入字符串:
2回复

字符串中的Windows文件路径对转义字符感到困惑

在没有Unity认为\\是转义字符的情况下,如何保存到Windows路径? 我遇到这样的错误:Assets / _Scripts / CaptureSaveScreenshot.cs(50,93):错误CS1009:无法识别的转义序列'\\ k'
2回复

nHibernate转义字符串吗?

在用户报告中,“在编辑foo时。 textboxBar允许特殊字符,在保存时会产生警告.net错误。 将textboxBar.Text分配给对象并使用nHibernate保存 认为这可能是nHibernate没有转义字符串,但在文档中找不到它。 nHibernate 1.2
3回复

字符串中不需要的转义字符

App.Config文件内容: 码: DTSARgs的样子: / N“BlockImportNEW”/ G“{C22A80D9-7613-43AF-939C-3C04AD7D848A}”/ F“\\ computername \\ foldername \\ folde
1回复

自动转义字符串中的字符

我正在一个C#项目中,我正在从用户定义的数据库中导出数据,所以我不知道数据将包含什么或格式将是什么。 数据库中的某些字符串可能包含撇号('),我需要对其进行转义,但是我在互联网上找到的所有内容都表明我必须做string.replace(“'”,“ \\'”); 这似乎有点奇怪,因为每种可
1回复

C#从字符串中提取转义字符

我正在将编码的字符串读入内存并对其进行解码。 字符串类似于“test \\ file1.txt” 。 通常,C#会将此视为字符串文字“test \\\\ file1.txt” ,正确地将转义字符分配给反斜杠字符。 在这种情况下,C#将斜杠视为文件中f的转义字符。 (“\\F”)。
4回复

转义字符出现在字符串中

我在Visual c#2010中编写了一段代码来生成一个字符串。 这个字符串需要包含反斜杠\\和语音标记“。 我尝试了以下方法: 和 但是他们都将转义字符放在输出字符串中: \\“C:\\\\ Program Files \\\\某些程序\\\\ some pr