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方法有多种重载方式,实现对指定的字符串或对象的连接操作。
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 对象是否出现在此字符串中。
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值,确定此字符串实例的开始/结尾是否与指定的字符串匹配。
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方法有多种重载方式,实现对两个字符串按照指定规则、指定范围的比较操作,方法返回值为一个整数,用以描述两个字符串的排序中的相对位置。
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
将字符串中字符转变为小写形式,或转换为大写形式。
String str1 = "Czhenya";
String str2 = "czhenya";
Console.WriteLine(str1.ToLower()); //输出:czhenya
Console.WriteLine(str2.ToUpper()); //输出:CZHENYA
Substring有两种重载方式,实现按照指定起始位置和指定长度对字符串取子串的功能。
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