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

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

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

一、前言

在 C# 中:

string s = "Hello";

stringSystem.String 的別名:

System.String s = "Hello";

核心特性

string 是引用類型

string 是 sealed 密封類

底層存儲(chǔ)為 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"
  • 原字符串保持不變
  • 原對(duì)象等待 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ù)字符串常量池
  • 相同字面量只存儲(chǔ)一份

驗(yàn)證:

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

五、字符串拼接性能對(duì)比

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

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

問(wèn)題:

  • 每次拼接都會(huì)創(chuàng)建新對(duì)象
  • 產(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)存分配

使用建議

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

六、字符串常用屬性

string text = "Hello";
成員說(shuō)明
Length獲取長(zhǎng)度
text[index]獲取指定位置字符

示例:

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

七、常用字符串方法

比較字符串(推薦寫(xiě)法)

不推薦:

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

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

推薦:

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

常見(jiàn)枚舉值:

枚舉說(shuō)明
Ordinal按字節(jié)比較
OrdinalIgnoreCase忽略大小寫(xiě)
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 常見(jiàn)格式

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"); // 星期三

時(shí)間

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

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

using System.Globalization;

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

原因:

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

十二、== 與 Equals

對(duì)于 string:

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

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

string 重寫(xiě)了 ==,比較的是值,不是地址。

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

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

最終整體理解

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

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

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

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

相關(guān)文章

最新評(píng)論

门源| 霸州市| 清新县| 黄梅县| 涟水县| 武夷山市| 辛集市| 扎鲁特旗| 蕲春县| 红安县| 西乡县| 平乐县| 汕头市| 横峰县| 永年县| 仙游县| 洪洞县| 张家界市| 城步| 密云县| 昭苏县| 枣阳市| 鹤岗市| 山西省| 冀州市| 肥城市| 射阳县| 新乡县| 抚州市| 南和县| 漯河市| 涿州市| 锦屏县| 嵊州市| 昌平区| 铜陵市| 峨眉山市| 颍上县| 正安县| 诏安县| 陇南市|