C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#字符串操作

一文详解C#中String字符串的常见操作与日期格式化方法

作者:bugcome_com

这篇文章主要为大家详细介绍了C#中字符串的常用操作与日期格式化方法,主要包括字符串的4种创建方式,String类的常用属性和方法等内容,希望对大家有所帮助

一、前言

在 C# 中:

string s = "Hello";

stringSystem.String 的别名:

System.String s = "Hello";

核心特性

string 是引用类型

string 是 sealed 密封类

底层存储为 char[]

实现了:

二、字符串创建方式

直接赋值(最常用)

string name = "Jack";

使用构造函数

char[] chars = { 'H', 'e', 'l', 'l', 'o' };
string str = new string(chars);

字符串拼接

string fullName = firstName + " " + lastName;

string.Join

string[] arr = { "A", "B", "C" };
string result = string.Join("-", arr);

字符串插值(推荐)

string name = "Tom";
int age = 20;

string msg = $"Name: {name}, Age: {age}";

三、字符串不可变(核心理解)

string s = "Hello";
s += " World";

看似修改字符串,实际发生:

为什么设计为不可变?

四、字符串驻留机制(Intern 机制)

string s1 = "abc";
string s2 = "abc";

可能指向同一块内存。

因为:

验证:

Console.WriteLine(object.ReferenceEquals(s1, s2));

五、字符串拼接性能对比

不推荐:循环中使用 +

string result = "";
for(int i = 0; i < 10000; i++)
{
    result += i;
}

问题:

推荐:StringBuilder

using System.Text;

StringBuilder sb = new StringBuilder();

for(int i = 0; i < 10000; i++)
{
    sb.Append(i);
}

string result = sb.ToString();

特点:

使用建议

场景推荐方式
少量拼接+ 或 $
多参数格式化字符串插值
数组拼接string.Join
循环拼接StringBuilder

六、字符串常用属性

string text = "Hello";
成员说明
Length获取长度
text[index]获取指定位置字符

示例:

Console.WriteLine(text.Length); // 5
Console.WriteLine(text[1]);     // e

七、常用字符串方法

比较字符串(推荐写法)

不推荐:

s1.ToLower() == s2.ToLower();

会创建新字符串。

推荐:

string.Equals(s1, s2, StringComparison.OrdinalIgnoreCase);

常见枚举值:

枚举说明
Ordinal按字节比较
OrdinalIgnoreCase忽略大小写
CurrentCulture按当前文化比较

判断是否包含

str.Contains("abc");
str.StartsWith("abc");
str.EndsWith("abc");

查找位置

str.IndexOf("abc");

截取

str.Substring(startIndex, length);

替换

str.Replace("old", "new");

分割

string[] parts = str.Split(',');

去除空格

str.Trim();
str.TrimStart();
str.TrimEnd();

八、字符串判空(高频重点)

string.IsNullOrEmpty(str);
string.IsNullOrWhiteSpace(str);

区别:

方法判断内容
IsNullOrEmptynull 或 “”
IsNullOrWhiteSpacenull、“”、空格

推荐优先使用 IsNullOrWhiteSpace

九、字符串格式化

string.Format

string result = string.Format("Name:{0}, Age:{1}", name, age);

ToString 格式化

DateTime dt = DateTime.Now;
string result = dt.ToString("yyyy-MM-dd HH:mm:ss");

字符串插值(推荐)

string result = $"{dt:yyyy-MM-dd HH:mm:ss}";

十、DateTime 常见格式

DateTime dt = new DateTime(2024, 12, 25, 18, 45, 30, 256);

dt.ToString("yyyy"); // 2024
dt.ToString("yy");   // 24

dt.ToString("MM");   // 12
dt.ToString("MMMM"); // 十二月

dt.ToString("dd");   // 25
dt.ToString("dddd"); // 星期三

时间

dt.ToString("HH");   // 18
dt.ToString("mm");   // 45
dt.ToString("ss");   // 30
dt.ToString("fff");  // 256

十一、生产环境注意文化问题

using System.Globalization;

dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);

原因:

十二、== 与 Equals

对于 string:

string a = "abc";
string b = "abc";

Console.WriteLine(a == b);       // True
Console.WriteLine(a.Equals(b));  // True

string 重写了 ==,比较的是值,不是地址。

十三、常见面试总结点

最终整体理解

掌握字符串不仅是会用 API,而是理解:

当你能够解释“为什么要这样写”,而不仅仅是“怎么写”,说明你已经真正掌握了 C# 字符串。

以上就是一文详解C#中String字符串的常见操作与日期格式化方法的详细内容,更多关于C#字符串操作的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文