C#实现字符串格式化的五种方式

 更新时间:2024年07月11日 10:16:19   作者:AitTech  
C#字符串格式化是一种将数据插入到预定义文本模板中创建新字符串的过程,它允许开发者更方便地控制输出内容的布局和显示样式,本文给大家介绍了C#实现字符串格式化的五种方式,文中通过代码示例讲解的非常详细,需要的朋友可以参考下

1. 字符串插值(C# 6.0 及更高版本)

字符串插值是 C# 6.0 引入的一种非常直观和方便的字符串格式化方法。通过在字符串中使用 ${} 语法,可以直接将变量的值嵌入到字符串中。

int number = 10;  
string message = $"The number is {number}.";  
Console.WriteLine(message);  // 输出:The number is 10.

2. String.Format 方法

String.Format 方法允许你使用类似于 printf 的格式字符串来格式化字符串。

int number = 10;  
string message = String.Format("The number is {0}.", number);  
Console.WriteLine(message);  // 输出:The number is 10.  
  
// 也可以指定多个参数  
string name = "Alice";  
message = String.Format("Hello, {0}! The number is {1}.", name, number);  
Console.WriteLine(message);  // 输出:Hello, Alice! The number is 10.

3. 复合格式化(与 String.Format 类似)

许多.NET 类库中的方法都支持复合格式化,这意味着你可以直接使用格式字符串和参数列表来生成格式化的字符串,而无需显式调用 String.Format。例如,Console.WriteLine、StringBuilder.AppendFormat 等方法。

int number = 10;  
Console.WriteLine("The number is {0}.", number);  // 输出:The number is 10.

4. ToString 方法

大多数.NET 类型都提供了 ToString 方法,该方法可以接受一个或多个格式化参数,以生成格式化的字符串表示。

int number = 10;  
string formattedNumber = number.ToString("D8");  // 输出:00000010,D8 表示至少显示8位数字,不足前面补0  
Console.WriteLine(formattedNumber);

5. 自定义格式化

你还可以通过实现 IFormattable 接口来自定义类型的格式化方式。这允许你在类型级别上控制字符串的格式化行为。

public class MyNumber : IFormattable  
{  
    private int value;  
  
    public MyNumber(int value)  
    {  
        this.value = value;  
    }  
  
    public string ToString(string format, IFormatProvider formatProvider)  
    {  
        if (formatProvider != null)  
        {  
            // 可以使用 formatProvider  
        }  
  
        if (format == "hex")  
        {  
            return value.ToString("X");  
        }  
  
        return value.ToString();  
    }  
  
    // 还可以覆盖 ToString() 无参版本  
    public override string ToString()  
    {  
        return ToString(null, null);  
    }  
}  
  
// 使用  
MyNumber myNumber = new MyNumber(255);  
Console.WriteLine(myNumber.ToString("hex"));  // 输出:FF

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

相关文章

  • C#线程处理系列之线程池中的I/O线程

    C#线程处理系列之线程池中的I/O线程

    这篇文章主要介绍了C#线程处理系列之线程池中的I/O线程,在这篇文章中将介绍如何用线程池中的I/O线程来执行I/O操作,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩

    C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩

    本文主要主要介绍了利用ICSharpCode.SharpZipLib第三方的DLL库实现在线压缩和解压缩的功能,并做了相关的代码演示。
    2016-04-04
  • C#文件路径操作详细总结

    C#文件路径操作详细总结

    本篇文章主要是对C#中的文件路径操作进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#实现简单的计算器小程序

    C#实现简单的计算器小程序

    这篇文章主要为大家详细介绍了C#实现简单的计算器小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Unity实现QQ列表折叠菜单

    Unity实现QQ列表折叠菜单

    这篇文章主要为大家详细介绍了Unity实现QQ列表折叠菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Unity实现桌面反弹的示例代码

    Unity实现桌面反弹的示例代码

    反弹球是小时候都玩过的网页小游戏,但是很多人都不知道怎样实现,本文就来介绍一下Unity实现桌面反弹的示例代码,感兴趣的可以了解一下
    2021-05-05
  • Unity实现简单虚拟摇杆

    Unity实现简单虚拟摇杆

    这篇文章主要为大家详细介绍了Unity实现简单虚拟摇杆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • .net从服务器下载文件中文名乱码解决方案

    .net从服务器下载文件中文名乱码解决方案

    这篇文章主要给大家介绍.net中从服务器下载文件中文名乱码的解决方案,有需要的朋友可以参考下
    2015-08-08
  • C#使用System.Net邮件发送功能踩过的坑

    C#使用System.Net邮件发送功能踩过的坑

    这篇文章主要介绍了C#使用System.Net邮件发送功能踩过的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 基于C#实现的高性能实时MP4录屏方案

    基于C#实现的高性能实时MP4录屏方案

    这篇文章主要介绍了基于C#实现的高性能实时MP4录屏方案,文中通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2026-02-02

最新评论