当前位置: 首页 > article >正文

C#入门学习记录(二)C# 中的转义字符——字符串处理的“魔法钥匙”​

前言:C# 中的转义字符——字符串处理的“魔法钥匙”​

        在 C# 编程中,​字符串(String)​ 是代码与数据交互的核心载体。无论是处理用户输入、操作文件路径,还是生成动态文本,我们都需要在字符串中嵌入一些“特殊符号”——比如换行、引号,甚至是不可见的控制字符。但问题来了:​如何在字符串中表示这些无法直接输入的字符?

        例如,若直接在字符串中写入 ",编译器会误认为这是字符串的结束标记,导致语法错误。再比如,想要在控制台输出中实现“换行”或“对齐”效果,仅靠普通字符显然无法满足需求。此时,​转义字符(Escape Characters)​ 便成了解决问题的“魔法钥匙”!

        转义字符以反斜杠 \ 开头,赋予普通字符特殊含义(如 \n 代表换行),或让特殊字符回归字面意义(如 \" 表示双引号)。掌握它们,不仅能避免语法错误,还能让字符串操作更灵活高效。此外,C# 还提供了 ​逐字字符串(@)​ 作为补充方案,简化路径、正则表达式等场景的代码编写。

        本文将详解 C# 中常见的转义字符,​通过直观的代码示例,带你解锁字符串处理的核心技巧。无论你是刚入门的新手,还是希望巩固基础的开发者,都能轻松掌握这些“魔法符号”的妙用!

小贴士

        转义字符是代码可读性与功能性的“双刃剑”——用对场景,事半功倍;滥用则会让代码晦涩难懂。合理选择转义字符或逐字字符串,是每位 C# 开发者的必修课!

 示例:

1. \':单引号(用于 char 类型)​

char singleQuote = '\''; 
Console.WriteLine(singleQuote); // 输出: '

用来把需要表示的单引号进行输出   ’

2. \":双引号(用于字符串中的引号)​

string quote = "哇哦 \"C# 得学,得好好学!\"";
Console.WriteLine(quote); // 输出: 哇哦 "C# 得学,得好好学!"

用于将双引号输出   ”

3. \\:反斜杠(路径或正则表达式中常用)

string path = "C:\\Program Files\\Project\\file.txt";
Console.WriteLine(path); // 输出: C:\Program Files\Project\file.txt

在进行文件相关处理的时候需要用到,比如你的文件是 \xx \xx\ x\,但是计算机太笨了,你只给一个斜杠,他就会把相邻的进行组合,所以你得两个!好事成双!

4. \0:空字符(ASCII 0,字符串的结束符)​

            string noEmptyChar = "HelloWorld";
            string emptyChar = "Hello\0World";
            Console.WriteLine(emptyChar); // 输出: Hello World(空字符可能显示为空格或不可见)
            Console.WriteLine(noEmptyChar);

5. \n:换行符

string multiLine = "Line1\nLine2\nLine3";
Console.WriteLine(multiLine);
// 输出:
// Line1
// Line2
// Line3

换行,顾名思义就是换到下一行进行结果的输出,不过Console.WriteLine()有这个功能。 

6. \r:回车符(常与 \n 一起用 \r\n 表示换行)​ 

string newLine = "Line1\r\nLine2";
Console.WriteLine(newLine);
// 输出:
// Line1
// Line2

就是键盘上有个enter那个按键 

7. \t:水平制表符(对齐文本)

string table = "Name:\tAlice\nAge:\t30";
Console.WriteLine(table);
// 输出:
// Name:   Alice
// Age:    30

一个tab的距离,四个空格!

8. \b:退格符(删除前一个字符)​

string text = "Hello\b\bWorld";
Console.WriteLine(text); // 输出: HeloWorld(删除了两个字符)

键盘上backspace那个键

9. \a:警报符(控制台发出提示音)​

Console.WriteLine("Warning!\a"); // 控制台会发出“叮”的一声

 这个演示不了,你可以跑跑代码,会叮咚一声。

10. \f:换页符(打印机换页,控制台无效果)​

Console.WriteLine("Page1\fPage2"); // 无可见变化,主要用于打印场景

11. \uXXXX:Unicode 转义符

string heart = "I love C# \u2665";
Console.WriteLine(heart); // 输出: I love C# ♥

看来我不一定喜欢,主要是可能没有支持unicode。

12. \xXX:十六进制转义符

string space = "Hello\x20World";
Console.WriteLine(space); // 输出: Hello World(\x20 是空格的十六进制值)

上面这么多写法,有麻烦又容易出错,所以我们接下来通常使用的是下面的方式

逐字字符串的对比示例

使用 @ 避免转义字符的复杂写法:

// 普通字符串(需要转义)
string path1 = "C:\\Files\\test.txt";

// 逐字字符串(无需转义)
string path2 = @"C:\Files\test.txt";

Console.WriteLine(path1); // 输出: C:\Files\test.txt
Console.WriteLine(path2); // 输出: C:\Files\test.txt

需要注意的是这个@要写在“”外面

多行文本和双引号的逐字字符串写法

string text = @"This is a
multi-line
string with ""quotes"".";
Console.WriteLine(text);
// 输出:
// This is a
// multi-line
// string with "quotes".

 

总结

  • 转义字符:用于在字符串中插入特殊符号(如换行、引号)。
  • 逐字字符串:用 @ 简化路径、多行文本的写法,双引号需写两次 ""
  • 适用场景:根据需求选择是否用转义字符或逐字字符串,让代码更清晰!
原文地址:https://blog.csdn.net/m0_74212916/article/details/146304355
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/593324.html

相关文章:

  • QT入门笔记3
  • 这样配置让Nginx更安全
  • 服装零售行业数字化时代的业务与IT转型规划P111(111页PPT)(文末有下载方式)
  • iwebsec-SQL数字型注入
  • 基于Babylon.js的Shader入门之五:让Shader支持法线贴图
  • jmeter验证正则表达式提取值是否正确
  • C语言中,memmove和memcpy的区别?
  • 脚本一键式启动Nginx、Mysql、Redis
  • 台式机电脑组装---电脑机箱与主板接线
  • 利用 Resnet50 重新训练,完成宠物数据集的识别,附源代码。。
  • 主流区块链平台对 EVM 的依赖情况分类说明
  • C#语言的响应式设计
  • OPC服务器开发之WtOPCSvr(3)
  • Linux 实时同步服务实现(Rsync 结合 Inotify)
  • 在鸿蒙NEXT中开发一个2048小游戏
  • umi自带的tailwindcss修改为手动安装
  • PyQt6嵌入HTML5内容教程
  • STM32-汇编
  • Kafka 的消息机制以及消息丢失等问题
  • LeetCode hot 100—每日温度