C#中处理字符串的三种方式

 更新时间:2026年07月28日 09:12:44   作者:jiay2  
还在为C#字符串中的转义字符烦恼吗,本文详细讲解逐字字符串和C#11的原始字符串字面值,教你如何原样输出路径、JSON等内容,并轻松混合内插字符串,让你的代码更简洁高效,需要的朋友可以参考下

1、逐字字符串

在字符串变量存储文本时,可以包括转义序列,转义序列用反斜杠“\”表示,如制表符“\t”和换行符'\r''\n':

string path = "C:\notebook\tel";

Console.WriteLine(path);

运行结果:

C:
otebook el.txt

很明显这不是我们想要的结果,这是一个完整路径,应该原样显示!

很简单,在c#中,使用逐字字符串时,在前面加一个"@"符就好了。

string path = @"C:\notebook\tel.txt";

Console.WriteLine(path);

重新运行结果:

C:\notebook\tel.txt

2、原始字符串字面值

C# 11中引入了原始字符串字面值的特性,该特性可方便地输入任何文本而不必转义内容。

原始字符串字面值应该以三个或三个以上的双引号开始和结束

string path = """
    C:\notebook\tel.txt
""";

Console.WriteLine(path);

运行结果:

C:\notebook\tel.txt

编译器会检查原始字符串字面值的最后三个(或多个)引号缩进级别,然后自动删除所有内容中该级别的缩进

string xml = """"   
    <person age="10">
        <name>小明</name>
            </person>
    """";

Console.WriteLine(xml);

运行结果:

<person age="10">
    <name>小明</name>
        </person>

如果最后三个引号与左边对其,那么空格将不会被移除:

string xml = """"
    <person age="10">
        <name>小明</name>
            </person>
"""";
    <person age="10">
        <name>小明</name>
            </person>

3、原始内插字符串字面值

修改前面的代码:

var  person = new { age = 12, name = "小明" };

string xml = $$""""   
    <person age="{{person.age}}">
        <name>{{person.name}}</name>
            </person>
    """";

Console.WriteLine(xml);

通过在内插字面值的开头添加对应数量的"$"符,可将使用花括号"{}"的内插字符串与原始字符串字面值混合使用.

int age=10;

string name = "小明";

string json=$$"""
{
    "name":{{name}},
    "age":{{age}}
}
""";

Console.WriteLine(json);

变量json运行结果:

{
    "name":小明,
    "age":10
}

"$"符的数量决定告诉编译器应该使用多少个花括号才能将对应内容识别为插值表达式。

string json=$$$"""
{
    "name":{{name}},
    "age":{{age}}
}
""";

Console.WriteLine(json);

这里只能跑出如下结果:

{
    "name":{{name}},
    "age":{{age}}
}

到此这篇关于C#中处理字符串的三种方式的文章就介绍到这了,更多相关C#处理字符串方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#学习笔记- 随机函数Random()的用法详解

    C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • C#中多态性的实现

    C#中多态性的实现

    这篇文章主要介绍了C#中多态性的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • C#使用Consul集群进行服务注册与发现

    C#使用Consul集群进行服务注册与发现

    这篇文章主要介绍了C#使用Consul集群进行服务注册与发现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • C# Winform按钮中图片实现左图右字的效果实例

    C# Winform按钮中图片实现左图右字的效果实例

    这篇文章主要给大家介绍了关于C# Winform按钮中图片实现左图右字效果的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • C# 利用IRawPixels接口遍历栅格数据

    C# 利用IRawPixels接口遍历栅格数据

    本文主要介绍了利用IRawPixels接口遍历栅格数据。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C# byte转为有符号整数实例

    C# byte转为有符号整数实例

    这篇文章主要介绍了C# byte转为有符号整数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • C#数据库操作类AccessHelper实例

    C#数据库操作类AccessHelper实例

    这篇文章主要介绍了C#数据库操作类AccessHelper实例,可实现针对access数据库的各种常见操作,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#中的Linq to JSON操作详解

    C#中的Linq to JSON操作详解

    本文详细讲解了C#中的Linq to JSON操作,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#实现复杂XML的序列化与反序列化

    C#实现复杂XML的序列化与反序列化

    这篇文章主要介绍了C#实现复杂XML的序列化与反序列化的方法,是非常实用的一个技巧,需要的朋友可以参考下
    2014-09-09
  • C#中的Action、Func和Predicate如何使用

    C#中的Action、Func和Predicate如何使用

    这篇文章主要给大家介绍了关于C#中Action、Func和Predicate如何使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论