「本文已參與好文召集令活動,點擊查看:後端、大前端雙賽道投稿,2萬元獎池等你挑戰!前端
String類表示文本,即一系列 Unicode 字符。 位於命名空間System中。 字符串是 Unicode 字符的有序集合,用於表示文本。String對象是 System. Char 對象的有序集合,用於表示字符串。String 對象的值是該有序集合的內容,而且該值是不可變的。後端
Equals方法有多種重載方式,實現按照必定規則肯定兩個String實例是否具備相同的值。數組
String str1 = "Czhenya";
String str2 = "czhenya";
//參數是object類型
Console.WriteLine(str1.Equals(str2)); //輸出:False
// 比較str1和str2
Console.WriteLine(String.Equals(str1,str2)); //輸出:False
// 比較str1和str2不區分大小寫
Console.WriteLine(String.Equals(str1,str2, StringComparison.OrdinalIgnoreCase));
//輸出:True
複製代碼
Concat方法有多種重載方式,實現對指定的字符串或對象的鏈接操做。markdown
String s1 = "C";
String s2 = "Zhen";
String s3 = "Ya";
String s4 = "_CSDN";
// 這種寫法最多支持鏈接四個字符串
Console.WriteLine(String.Concat(s1, s2)); //輸出:CZhen
Console.WriteLine(String.Concat(s1, s2, s3, s4)); //輸出:CZhenYa_CSDN
// 還有三個object爲參數類型的重載
Console.WriteLine(String.Concat(s1, 1, '2', 0.3f)); //輸出:C120.3
// 鏈接字符串數組
String[] strArr = { "A", "BC", "DEF", "GH", "IJKL" };
Console.WriteLine(String.Concat(strArr)); //輸出:ABCDEFGHIJKL
複製代碼
返回一個bool值,該值指示指定的 String 對象是否出如今此字符串中。post
String str1 = "Czhenya";
String str2 = "Czhenya_CSDN";
// str1是否包含str2 (區分大小寫) --> 或者理解爲str2是不是str1的字串
Console.WriteLine(str1.Contains(str2)); //輸出:False
Console.WriteLine(str2.Contains(str1)); //輸出:True
// 參數是char類型的重載
Console.WriteLine(str1.Contains('c')); //輸出:False
Console.WriteLine(str1.Contains('C')); //輸出:True
複製代碼
返回一個Boolean值,肯定此字符串實例的開始/結尾是否與指定的字符串匹配。ui
String str1 = "Czhenya";
String str2 = "Czhenya_CSDN";
//str1是不是以str2開始的
Console.WriteLine(str1.StartsWith(str2)); //輸出:False
Console.WriteLine(str1.StartsWith('C')); //輸出:True
Console.WriteLine(str2.StartsWith(str1)); //輸出:True
Console.WriteLine(str2.StartsWith('c')); //輸出:False
複製代碼
Compare方法有多種重載方式,實現對兩個字符串按照指定規則、指定範圍的比較操做,方法返回值爲一個整數,用以描述兩個字符串的排序中的相對位置。spa
String str1 = "czhenya";
String str2 = "Czhenya_CSDN";
//參數:字符串1,字符串2,是否區分大小寫
Console.WriteLine(String.Compare(str1, str2)); //輸出:-1
Console.WriteLine(String.Compare(str1, str2, true)); //輸出:-1
//參數:字符串1,str1開始索引,字符串2,str2開始索引,比較長度,是否區分大小寫
Console.WriteLine(String.Compare(str1, 0, str2, 0, 7)); //輸出:-1
Console.WriteLine(String.Compare(str1, 0, str2, 0, 7, true)); //輸出:0
複製代碼
將字符串中字符轉變爲小寫形式,或轉換爲大寫形式。code
String str1 = "Czhenya";
String str2 = "czhenya";
Console.WriteLine(str1.ToLower()); //輸出:czhenya
Console.WriteLine(str2.ToUpper()); //輸出:CZHENYA
複製代碼
Substring有兩種重載方式,實現按照指定起始位置和指定長度對字符串取子串的功能。orm
String str1 = "Czhenya";
//參數:開始索引
Console.WriteLine(str1.Substring(2)); //輸出:henya
//參數:開始索引,截取長度
Console.WriteLine(str1.Substring(0, 2)); //輸出:Cz
複製代碼
Split, 實現按照指定字符對字符串進行分割造成多個子串的功能。對象
//使用下劃線"_"分隔字符串
String str2 = "Czhenya_C_S_D_";
string[] res2 = str2.Split('_');
for (int i = 0; i < res2.Length; i++)
{
Console.Write(res2[i] + "..."); // 輸出:Czhenya...C...S...D......
}
Console.WriteLine();
// 默認參數:StringSplitOptions.None :返回值包括包含空字符串的數組元素。
// StringSplitOptions.RemoveEmptyEntries:返回值不包括包含空字符串的數組元素。
string[] res3 = str2.Split('_', StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < res3.Length; i++)
{
Console.Write(res3[i] + "..."); // 輸出:Czhenya...C...S...D...
}
Console.WriteLine();
//參數: 分隔字符,分隔幾組,默認參數:StringSplitOptions.None
string[] res4 = str2.Split('_',3);
for (int i = 0; i < res4.Length; i++)
{
Console.Write(res4[i] + "..."); // 輸出:Czhenya...C...S_D_...
}
Console.WriteLine();
複製代碼
Replace方法替換此實例中指定的字符或子串。
String str1 = "Czhenya_CSDN";
// 使用 字符'A' 替換字符串中的 字符'C'
Console.WriteLine(str1.Replace('C','A')); //輸出:Azhenya_ASDN
// 字符串"ABCD" ,替換 字符串"CSDN"
Console.WriteLine(str1.Replace("CSDN", "ABCD")); //輸出:Czhenya_ABCD
複製代碼
Remove方法刪除此實例中指定的字符。
String str1 = "Czhenya_CSDN";
//參數:開始移除的索引
Console.WriteLine(str1.Remove(7)); //輸出:Czhenya
//參數:開始移除索引,移除長度
Console.WriteLine(str1.Remove(0,2)); //輸出:henya_CSDN
複製代碼
刪除字符串中全部前導空白字符和尾部空白字符。
String str1 = " Czhenya_CSDN ";
//除去字符串頭部的空格
Console.WriteLine("..." + str1.TrimStart() + "..."); //輸出:...Czhenya_CSDN ...
//除去字符串尾部的空格
Console.WriteLine("..." + str1.TrimEnd() + "..."); //輸出:... Czhenya_CSDN...
//除去字符串頭部和尾部的空格
Console.WriteLine("..." + str1.Trim() + "..."); //輸出:...Czhenya_CSDN...
複製代碼
Insert方法在此實例中的指定索引位置插入一個指定的String 實例。
String str1 = "Czhenya_CSDN";
//在指定的開始索引位置以後添加指定字符串
Console.WriteLine(str1.Insert(0, "ABC")); //輸出:ABCCzhenya_CSDN
複製代碼
IndexOf方法有多種重載方式,報告指定字符或字符串在此實例中指定範圍內的第一個匹配項的索引。
String str1 = "CSDN_Czhenya";
//匹配字符'C'在字符串str1中第一次出現的索引,沒有則爲-1;
Console.WriteLine(str1.IndexOf('C')); //輸出:0
//匹配字符串str1第3個字符後字符'C'第一次出現的索引
Console.WriteLine(str1.IndexOf('C', 3)); //輸出:5
//匹配默認區分大小寫,StringComparison.OrdinalIgnoreCase:爲不區分大小寫
Console.WriteLine(str1.IndexOf('c')); //輸出:-1
Console.WriteLine(str1.IndexOf('c', StringComparison.OrdinalIgnoreCase)); //輸出:0
Console.WriteLine(str1.IndexOf("CSDN")); //輸出:0
Console.WriteLine(str1.IndexOf("CsDn", 0, 5)); //輸出:-1
Console.WriteLine(str1.IndexOf("CsDn", 0, 5, StringComparison.OrdinalIgnoreCase)); //輸出:0
//-----------------LastIndexOf-----------------------
//字符'C'在str1的最後一次出現的從0開始的索引位置
Console.WriteLine(str1.LastIndexOf('C')); //輸出:5
//字符'C'在str1的最後一次出現的從3開始的索引位置
Console.WriteLine(str1.LastIndexOf('C', 3)); //輸出:0
//參數:要匹配的字符,開始索引,匹配長度 --> 須要注意的是這裏是從開始索引倒置匹配,因此索引值要大於等於匹配長度不然會報異常
Console.WriteLine(str1.LastIndexOf('C', 7, 4)); //輸出:5
複製代碼
IndexOfAny和LastIndexOfAny
String str1 = "CSDN_Czhenya";
char[] testArr = { 'N', 'S', 'C', 'D'};
//從字符串str1第一個字符開始(0號索引)和字符數組testArr中的元素進行匹配,匹配到了則返回當前索引
Console.WriteLine(str1.IndexOfAny(testArr)); //輸出:0
//從第四個字符開始匹配
Console.WriteLine(str1.IndexOfAny(testArr, 4)); //輸出:5
//參數:匹配字符數組,匹配在str1的開始位置,匹配長度
Console.WriteLine(str1.IndexOfAny(testArr, 4, 3)); //輸出:5
//-----------------LastIndexOfAny-----------------------
char[] testArr = { 'N', 'S', 'C', 'D'};
Console.WriteLine(str1.LastIndexOfAny(testArr)); //輸出:5
Console.WriteLine(str1.LastIndexOfAny(testArr, 4)); //輸出:3
Console.WriteLine(str1.LastIndexOfAny(testArr, 4, 3)); //輸出:3
複製代碼
IsNullOrEmpty,指示指定的字符串是null仍是空字符串,若是值參數爲null或空字符串,返回true;不然返回false。。
string value1;
string value2 = "";
string value3 = "Czhenya";
Console.WriteLine(String.IsNullOrEmpty(value1)); //輸出:True
Console.WriteLine(String.IsNullOrEmpty(value2)); //輸出:True
Console.WriteLine(String.IsNullOrEmpty(value2)); //輸出:False
複製代碼