学习c#的第十天

本文详细介绍了C#中String类的创建方式、属性(如Length和Chars)、常用方法(如Compare、Concat、IndexOf等)以及如何使用string.Format和ToString方法格式化日期。实例演示了如何运用这些概念。
摘要由CSDN通过智能技术生成

目录

C# 字符串(String)

创建 String 对象

String 类的属性

String 类的方法

实例

C#的string.Format格式化日期


C# 字符串(String)

创建 String 对象

可以使用以下方法之一来创建 string 对象:

1、通过给 String 变量指定一个字符串

string str1 = "Hello, World!"; // 使用字符串字面量直接赋值给变量
string str2 = ""; // 创建一个空字符串

2、通过使用 String 类构造函数

string str3 = new string('a', 5); // 创建由 5 个字符 'a' 组成的字符串
string str4 = new string(new char[] { 'H', 'e', 'l', 'l', 'o' }); // 使用字符数组创建字符串

3、通过使用字符串串联运算符( + )

string str5 = "Hello" + " " + "World!"; // 将多个字符串连接成一个新的字符串

4、通过检索属性或调用一个返回字符串的方法

string str6 = DateTime.Now.ToString(); // 获取当前日期和时间的字符串表示形式

5、通过格式化方法来转换一个值或对象为它的字符串表示形式

int num = 42;
string str7 = string.Format("答案是 {0}.", num); // 使用占位符将值格式化为字符串

String 类的属性

String 类有以下两个属性:

序号属性名称 & 描述
1Chars
在当前 String 对象中获取 Char 对象的指定位置。
2Length
在当前的 String 对象中获取字符数。

String 类的方法

String 类有许多方法用于 string 对象的操作。下面的表格提供了一些最常用的方法:

序号方法名称 & 描述
1public static int Compare( string strA, string strB )
比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。
2public static int Compare( string strA, string strB, bool ignoreCase )
比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。但是,如果布尔参数为真时,该方法不区分大小写。
3public static string Concat( string str0, string str1 )
连接两个 string 对象。
4public static string Concat( string str0, string str1, string str2 )
连接三个 string 对象。
5public static string Concat( string str0, string str1, string str2, string str3 )
连接四个 string 对象。
6public bool Contains( string value )
返回一个表示指定 string 对象是否出现在字符串中的值。
7public static string Copy( string str )
创建一个与指定字符串具有相同值的新的 String 对象。
8public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count )
从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。
9public bool EndsWith( string value )
判断 string 对象的结尾是否匹配指定的字符串。
10public bool Equals( string value )
判断当前的 string 对象是否与指定的 string 对象具有相同的值。
11public static bool Equals( string a, string b )
判断两个指定的 string 对象是否具有相同的值。
12public static string Format( string format, Object arg0 )
把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。
13public int IndexOf( char value )
返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。
14public int IndexOf( string value )
返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。
15public int IndexOf( char value, int startIndex )
返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。
16public int IndexOf( string value, int startIndex )
返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。
17public int IndexOfAny( char[] anyOf )
返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。
18public int IndexOfAny( char[] anyOf, int startIndex )
返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。
19public string Insert( int startIndex, string value )
返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。
20public static bool IsNullOrEmpty( string value )
指示指定的字符串是否为 null 或者是否为一个空的字符串。
21public static string Join( string separator, string[] value )
连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。
22public static string Join( string separator, string[] value, int startIndex, int count )
连接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。
23public int LastIndexOf( char value )
返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。
24public int LastIndexOf( string value )
返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。
25public string Remove( int startIndex )
移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。
26public string Remove( int startIndex, int count )
从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。
27public string Replace( char oldChar, char newChar )
把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。
28public string Replace( string oldValue, string newValue )
把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。
29public string[] Split( params char[] separator )
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。
30public string[] Split( char[] separator, int count )
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。
31public bool StartsWith( string value )
判断字符串实例的开头是否匹配指定的字符串。
32public char[] ToCharArray()
返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。
33public char[] ToCharArray( int startIndex, int length )
返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。
34public string ToLower()
把字符串转换为小写并返回。
35public string ToUpper()
把字符串转换为大写并返回。
36public string Trim()
移除当前 String 对象中的所有前导空白字符和后置空白字符。

上面的方法列表并不详尽,请访问 MSDN 库,查看完整的方法列表和 String 类构造函数。

实例

using System;

class Program
{
    static void Main()
    {
        // 使用 Length 属性获取字符串长度
        string str = "Hello, World!";
        int length = str.Length;
        Console.WriteLine("字符串的长度为:" + length);

        // 使用 Substring 方法截取子字符串
        string subStr = str.Substring(7, 5);
        Console.WriteLine("截取的子字符串为:" + subStr);

        // 使用 ToUpper 方法将字符串转换为大写
        string upperStr = str.ToUpper();
        Console.WriteLine("转换为大写后的字符串为:" + upperStr);

        // 使用 Replace 方法替换字符串中的部分内容
        string replacedStr = str.Replace("World", "宇宙");
        Console.WriteLine("替换后的字符串为:" + replacedStr);
    }
}

C#的string.Format格式化日期

在 C# 中,可以使用 string.Format 方法来格式化日期。可以在格式字符串中使用特定的日期和时间格式说明符来定义日期的显示方式。

以下是一些常用的日期和时间格式说明符:

  • "d": 短日期格式(例如:11/13/2023)
  • "D": 长日期格式(例如:2023年11月13日)
  • "t": 短时间格式(例如:11:28 AM)
  • "T": 长时间格式(例如:11:28:14 AM)
  • "f": 完整日期时间格式(例如:2023年11月13日 上午 11:28)
  • "F": 完整日期时间格式(包含秒)(例如:2023年11月13日 上午 11:28:14)
  • "g": 一般日期时间格式(例如:11/13/2023 11:28 AM)
  • "G": 一般日期时间格式(包含秒)(例如:11/13/2023 11:28:14 AM)
  • "M": 月日格式(例如:11月13日)
  • "Y": 年份和月份格式(例如:2023年11月)
using System;

class Program
{
    static void Main()
    {
        DateTime dt = DateTime.Now;

        // 年份格式
        Console.WriteLine(string.Format("{0:y yy yyy yyyy}", dt));// 23 23 2023 2023

        // 月份格式
        Console.WriteLine(string.Format("{0:M MM MMM MMMM}", dt));// 11 11 11月 十一月

        // 日期格式
        Console.WriteLine(string.Format("{0:d dd ddd dddd}", dt));// 13 13 周一 星期一

        // 时间格式(短)
        Console.WriteLine(string.Format("{0:t tt}", dt));// 下 下午

        // 小时格式(24小时制)
        Console.WriteLine(string.Format("{0:H HH}", dt));// 19 19

        // 小时格式(12小时制)
        Console.WriteLine(string.Format("{0:h hh}", dt));// 7 07

        // 分钟格式
        Console.WriteLine(string.Format("{0:m mm}", dt));// 43 43

        // 秒格式
        Console.WriteLine(string.Format("{0:s ss}", dt));//45 45

        // 毫秒格式
        Console.WriteLine(string.Format("{0:F FF FFF FFFF FFFFF FFFFFF FFFFFFF}", dt));// 5 56 567 5674 56745 567456 5674566

        // 毫秒格式(去除末尾的0)
        Console.WriteLine(string.Format("{0:f ff fff ffff fffff ffffff fffffff}", dt));// 1 15 152 1521 15219 152195 1521954

        // 时区格式
        Console.WriteLine(string.Format("{0:z zz zzz}", dt));// +8 +08 +08:00
        // 自定义格式
        Console.WriteLine(string.Format("{0:yyyy/MM/dd HH:mm:ss.fff}", dt));// "2023/11/13 19:46:02.327"

        Console.WriteLine(string.Format("{0:yyyy/MM/dd dddd}", dt));// "2023/11/13 星期一"

        Console.WriteLine(string.Format("{0:yyyy/MM/dd dddd tt hh:mm}", dt));// "2023/11/13 星期一 下午 07:47"

        Console.WriteLine(string.Format("{0:yyyyMMdd}", dt));// "20231113"

        Console.WriteLine(string.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", dt));// "2023-11-13 19:47:57.395"
    }
}

上面的代码里用到的String.Format 方法并不详尽,请访问微软的官方文档(或者看这篇文章进行学习),查看完整的方法内容。

除去string.Format()可以对日期进行格式化之外,*.ToString()也可以实现相同的效果:

using System;

class Program
{
    static void Main()
    {
        DateTime dt = DateTime.Now;

        dt.ToString("y yy yyy yyyy");
        dt.ToString("M MM MMM MMMM");
        dt.ToString("d dd ddd dddd");
        dt.ToString("t tt");
        dt.ToString("H HH");
        dt.ToString("h hh");
        dt.ToString("m mm");
        dt.ToString("s ss");
        dt.ToString("F FF FFF FFFF FFFFF FFFFFF FFFFFFF");
        dt.ToString("f ff fff ffff fffff ffffff fffffff");
        dt.ToString("z zz zzz");

        dt.ToString("yyyy/MM/dd HH:mm:ss.fff"); 
        dt.ToString("yyyy/MM/dd dddd");     
        dt.ToString("yyyy/MM/dd dddd tt hh:mm"); 
        dt.ToString("yyyyMMdd");         
        dt.ToString("yyyy-MM-dd HH:mm:ss.fff"); 
    }
}
  • 22
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在奋斗的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值