最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解C#中String字符串的常見操作與日期格式化方法

 更新時間:2026年02月26日 09:16:55   作者:bugcome_com  
這篇文章主要為大家詳細(xì)介紹了C#中字符串的常用操作與日期格式化方法,主要包括字符串的4種創(chuàng)建方式,String類的常用屬性和方法等內(nèi)容,希望對大家有所幫助

一、前言

在 C# 中:

string s = "Hello";

stringSystem.String 的別名:

System.String s = "Hello";

核心特性

string 是引用類型

string 是 sealed 密封類

底層存儲為 char[]

實(shí)現(xiàn)了:

  • IComparable
  • IEnumerable<char>
  • IEquatable<string>

二、字符串創(chuàng)建方式

直接賦值(最常用)

string name = "Jack";

使用構(gòu)造函數(shù)

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";

看似修改字符串,實(shí)際發(fā)生:

  • 創(chuàng)建新字符串 "Hello World"
  • 原字符串保持不變
  • 原對象等待 GC 回收

為什么設(shè)計(jì)為不可變?

  • 線程安全
  • 支持字符串常量池
  • 哈希值穩(wěn)定(可作為 Dictionary key)
  • 提高 CLR 優(yōu)化能力

四、字符串駐留機(jī)制(Intern 機(jī)制)

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

可能指向同一塊內(nèi)存。

因?yàn)椋?/p>

  • CLR 維護(hù)字符串常量池
  • 相同字面量只存儲一份

驗(yàn)證:

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

五、字符串拼接性能對比

不推薦:循環(huán)中使用 +

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

問題:

  • 每次拼接都會創(chuàng)建新對象
  • 產(chǎn)生大量 GC

推薦:StringBuilder

using System.Text;

StringBuilder sb = new StringBuilder();

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

string result = sb.ToString();

特點(diǎn):

  • 可變字符串
  • 性能高
  • 減少內(nèi)存分配

使用建議

場景推薦方式
少量拼接+ 或 $
多參數(shù)格式化字符串插值
數(shù)組拼接string.Join
循環(huán)拼接StringBuilder

六、字符串常用屬性

string text = "Hello";
成員說明
Length獲取長度
text[index]獲取指定位置字符

示例:

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

七、常用字符串方法

比較字符串(推薦寫法)

不推薦:

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

會創(chuàng)建新字符串。

推薦:

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

常見枚舉值:

枚舉說明
Ordinal按字節(jié)比較
OrdinalIgnoreCase忽略大小寫
CurrentCulture按當(dāng)前文化比較

判斷是否包含

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();

八、字符串判空(高頻重點(diǎn))

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

區(qū)別:

方法判斷內(nèi)容
IsNullOrEmptynull 或 “”
IsNullOrWhiteSpacenull、“”、空格

推薦優(yōu)先使用 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

十一、生產(chǎn)環(huán)境注意文化問題

using System.Globalization;

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

原因:

  • 不同服務(wù)器地區(qū)文化不同
  • 保證格式統(tǒng)一
  • 避免線上問題

十二、== 與 Equals

對于 string:

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

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

string 重寫了 ==,比較的是值,不是地址。

十三、常見面試總結(jié)點(diǎn)

  • string 是引用類型
  • string 是不可變類型
  • 存在字符串常量池
  • 頻繁拼接使用 StringBuilder
  • 比較字符串推薦使用 StringComparison
  • 判空使用 IsNullOrEmpty / IsNullOrWhiteSpace
  • 生產(chǎn)環(huán)境注意文化問題
  • string 重寫了 == 運(yùn)算符

最終整體理解

掌握字符串不僅是會用 API,而是理解:

  • 內(nèi)存模型
  • 不可變設(shè)計(jì)思想
  • 性能差異
  • 文化差異
  • 實(shí)際生產(chǎn)環(huán)境寫法

當(dāng)你能夠解釋“為什么要這樣寫”,而不僅僅是“怎么寫”,說明你已經(jīng)真正掌握了 C# 字符串。

以上就是一文詳解C#中String字符串的常見操作與日期格式化方法的詳細(xì)內(nèi)容,更多關(guān)于C#字符串操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

景德镇市| 新野县| 原阳县| 平罗县| 柳林县| 资中县| 海原县| 南木林县| 沙湾县| 南昌县| 蒲江县| 邻水| 高安市| 南陵县| 丹东市| 元朗区| 行唐县| 盐池县| 盐边县| 普兰店市| 曲沃县| 镇雄县| 新郑市| 桂阳县| 梨树县| 河间市| 迁安市| 保靖县| 股票| 行唐县| 田阳县| 克什克腾旗| 屏山县| 古蔺县| 上虞市| 铜梁县| 定远县| 兴安县| 富裕县| 鱼台县| 怀集县|