C# 之 String类常用方法汇总

String类表示文本,即一系列 Unicode 字符。 位于命名空间System中。 字符串是 Unicode
字符的有序集合,用于表示文本。String对象是 System. Char 对象的有序集合,用于表示字符串。String
对象的值是该有序集合的内容,并且该值是不可变的。

1.Equals方法

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
---
# 2.Concat方法
**Concat方法有多种重载方式,实现对指定的字符串或对象的连接操作。**

```csharp
  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

3.Contains方法

返回一个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

4.StartsWith和EndsWith方法

返回一个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

5.Compare方法

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


# 6.ToLower 方法和ToUpper方法
**将字符串中字符转变为小写形式,或转换为大写形式。**

```csharp
  String str1 = "Czhenya";
  String str2 = "czhenya";
  
  Console.WriteLine(str1.ToLower());    //输出:czhenya
  Console.WriteLine(str2.ToUpper());    //输出:CZHENYA

7.Substring方法

Substring有两种重载方式,实现按照指定起始位置和指定长度对字符串取子串的功能。

 String str1 = "Czhenya";
 //参数:开始索引
 Console.WriteLine(str1.Substring(2));     //输出:henya
 //参数:开始索引,截取长度
 Console.WriteLine(str1.Substring(0, 2));  //输出:Cz

8.Split方法

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

9.Replace方法

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

10.Remove方法

Remove方法删除此实例中指定的字符。

 String str1 = "Czhenya_CSDN";
 //参数:开始移除的索引
 Console.WriteLine(str1.Remove(7));           //输出:Czhenya
 //参数:开始移除索引,移除长度
 Console.WriteLine(str1.Remove(0,2));         //输出:henya_CSDN

11.Trim方法

删除字符串中所有前导空白字符和尾部空白字符。

String str1 = "  Czhenya_CSDN  ";

//除去字符串头部的空格
Console.WriteLine("..." + str1.TrimStart() + "...");    //输出:...Czhenya_CSDN  ...
//除去字符串尾部的空格
Console.WriteLine("..." + str1.TrimEnd() + "...");      //输出:...  Czhenya_CSDN...
//除去字符串头部和尾部的空格
Console.WriteLine("..." + str1.Trim() + "...");         //输出:...Czhenya_CSDN...

12.Insert方法

Insert方法在此实例中的指定索引位置插入一个指定的String 实例。

 String str1 = "Czhenya_CSDN";

//在指定的开始索引位置之后添加指定字符串
Console.WriteLine(str1.Insert(0, "ABC"));    //输出:ABCCzhenya_CSDN

13. IndexOf相关方法

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

14.IsNullOrEmpty

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章