iT邦幫忙

2021 iThome 鐵人賽

DAY 25
1
Software Development

C# 入门系列 第 25

C# 入门之格式化输出字符串

前面我们讲特殊符号的时候,我们有讲过 $ 符号,它就是一个简化的格式化输出的符号。今天我们来看看字符串中的 Fromat 方法,可以支持那些种类的格式化输出。

首先我们来看一个最基本的格式化输出:

using System;

namespace ConsoleApp26
{
    class Program
    {
        static void Main(string[] args)
        {
            int price = 100;
            Console.WriteLine(string.Format("The item costs ${0}", price));
        }
    }
}

运行结果:

The item costs $100

看起来,没有 $ 符号方便。

我们接着看下面的示例:

using System;

namespace ConsoleApp26
{
    class Program
    {
        static void Main(string[] args)
        {
            int price = 100;
            Console.WriteLine(string.Format("The item costs {0:c}", price));  // 添加了一个:c
        }
    }
}

运行结果:

The item costs $100.00

是不是不太一样了,我们在 { } 里面添加了一个 : 和 C,我们称这个 c 为标准数字格式说明符。这个说明符,不止 称 c 一个,有好多,具体可以查看微软官网(https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings)

我这里只是简单介绍其中的一部分。
首先,就是我们前面示例中的 C,既可以大写,也可以小写,用于表示货币,货币的类型,根据你操作系统的不同,显示的类型不同。我是英文操作系统,所以这里显示的 $。

我们可以通过 N 将数字分段,增加可读性。

using System;

namespace ConsoleApp26
{
    class Program
    {
        static void Main(string[] args)
        {
            int price = 10000000;
            Console.WriteLine(string.Format("The item costs ${0:n}", price));
        }
    }
}

运行结果:

The item costs $10,000,000.00 

我们可以通过 P,以百分比的形式显示浮点数:

using System;

namespace ConsoleApp26
{
    class Program
    {
        static void Main(string[] args)
        {
            float percent = 0.5f;
            Console.WriteLine(string.Format("The task is {0:p}", percent));
        }
    }
}

运行结果:

The task is 50.00%

除了支持标准数字格式说明符外,C# 还支持标准日期和时间格式字符串、标准 TimeSpan 格式字符串等等。

下面我们来看一些标准日期和时间格式字符串(关于标准 TimeSpan 格式字符串以及其他相关的,感兴趣的可以查看微软官方网站。)。

关于标准日期和时间格式字符串详细内容,可以查看下面连接:
https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-date-and-time-format-strings

下面我们来看一些示例:

using System;

namespace ConsoleApp26
{
    class Program
    {
        static void Main(string[] args)
        {
            \\这个示例,我们是通过 DateTime.Now 方法,获取的系统当前日期
            Console.WriteLine(string.Format("it's {0:d}", DateTime.Now));
        }
    }
}

运行结果:

it's 9/30/2021

我们也可以手动指定:

using System;

namespace ConsoleApp26
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime date = new DateTime(2021, 9, 30);
            Console.WriteLine(string.Format("it's {0:d}", date));
        }
    }
}

输出的结果和前面一样:

it's 9/30/2021

上一篇
C#入门之字符串转义
下一篇
C#入门之文本处理(补充)
系列文
C# 入门31

尚未有邦友留言

立即登入留言