Int32)指定字符数组中的任意字符在此实例中第一个匹配项的索引

时间:2021-10-19 06:50:31

1.1 字符串巨细写
 要领原型 
  string <strName>.ToUpper();  //返回字符串转换的大写形式
  string <strName>.ToLower();  //返回字符串转换的小写形式
 例如:用户在输入用户名的时候,可能会巨细写输入混乱,但是我们可以转换(全部转换为大写或者全部转化为小写)一下,
 使用户也能够登录告成
     Console.Write("请您输入用户名:");
        //全部转换为大写
        string username = Console.ReadLine();
        string usernameupper = username.ToUpper();
        //全部转换为小写
        string usernamelower = username.ToLower();
        Console.WriteLine("大写是:{0},小写是:{1}", usernameupper, usernamelower); 

1.2 移除首尾指定字符
 Trim 移除一组指定字符的首尾匹配项
  要领原型
   (1)string <strName>.Trim();      //移除首尾的空格
    string str = " 韩迎龙 ";
    string firstendnullstr = str.Trim();
    Console.WriteLine(firstendnullstr.Length);   输出信息:3
   (2)string <strName>.Trim(new char[]{‘<char>‘});   //移除首尾指定的字符(必需是首尾的字符)
    string str = "韩迎龙韩";
    string firstendnullstr = str.Trim(new char[] { ‘韩‘ });
    Console.WriteLine(firstendnullstr);   输出信息:迎龙
 TrimStart 移除一组指定字符的开头匹配项
  要领原型
   (1)string <strName>.TrimStart(); //移除开头的空格
    string str = " 韩迎龙 ";
    string firstendnullstr = str.TrimStart();
    Console.WriteLine(firstendnullstr.Length);  输出信息:4
   (2)string <strName>.TrimStart(new char[]{‘<char>‘}); //移除开头指定的字符
    string str = "韩迎龙韩";
    string firstendnullstr = str.TrimStart(new char[] { ‘韩‘ });
    Console.WriteLine(firstendnullstr);     输出信息:迎龙韩
 TrimEnd 移除一组指定字符的结尾指定项
  要领原型
   (1)string <strName>.TrimEnd();   //移除结尾的空格
    string str = " 韩迎龙 ";
    string firstendnullstr = str.TrimEnd();
    Console.WriteLine(firstendnullstr.Length);  输出信息:4
   (2)string <strName>.TrimEnd(new char[]{‘<char>‘});
    string str = "韩迎龙韩";
    string firstendnullstr = str.TrimEnd(new char[] { ‘韩‘ });
    Console.WriteLine(firstendnullstr);     输出信息:韩迎龙

1.3 字符串的对照
 Compare()要领
  要领原型
   (1) int Compare(String,String);   //对照两个字符串东西
    int strCompare=string.Compare("sFsFsF","Sfsfsf"); //输出信息:0
   (2) int Compare(string,String,Boolean)  //对照两个字符串东西,是否忽略巨细写
    int  int dou = string.Compare("sdsSD", "sdsSd", true);   //输出信息:0
   (3) int Compare(String,String,StringComparison) //参数指定对照是使用当前区域性还是固定区域性,
    是考虑还是忽略巨细写,是使用字排序法则还是序号排序法则。
    int dou = string.Compare("dsdssdD", "dsdssdd", StringComparison.OrdinalIgnoreCase); //输出信息0
  凭据字典排序进行对照
   如果strA>StrB,则返回的值大于0
   如果strA=strB,则返回的值即是0
   如果strA<strB,则返回的值小于0
 CompareOrdinal()要领,通过计算每个字符串中相应Char东西的数值来对照
  要领原型
   (1)int CompareOrdinal(String,String)  //通过计算每个字符串中相应的Char东西的数值来对照两个字符串
    int dou = string.CompareOrdinal("a", "c");  //输出功效是:-2
  也是凭据字典排序
   如果strA>StrB,则返回的值大于0
   如果strA=strB,则返回的值即是0
   如果strA<strB,则返回的值小于0
 CompareTo()要领,将此实例与指定东西或者String进行对照,并且返回二者相对值的指示
  要领原型
   (1) int CompareTo(Object);  //将此实例与object进行对照
    MyClass my = new MyClass();
    string s = "sometext";
    try
    {
     int i = s.CompareTo(my);
    }
    catch (Exception ex)
    {
     Console.WriteLine(ex.Message);
    }
    public class MyClass { }    
    //输出功效是:东西的类型必需是string类型
   (2) int CompareTo(string);  //将此实例与string进行对照
    string str = "a";
    int s = str.CompareTo("c");  //输出功效是-1
  也是凭据字典排序
   如果strA>StrB,则返回的值大于0
   如果strA=strB,则返回的值即是0
   如果strA<strB,则返回的值小于0
 Equals()要领,确定两个String东西是否具有不异的值
  要领原则
   (1)bool Equals(Object); 确定此String实例是否与指定的东西具有不异的值
    StringBuilder sb = new StringBuilder("abcd");
    String str1 = "abcd";
    Console.WriteLine(str1.Equals(sb));
    输出功效:False
   (2)bool Equals(String); 确定此实例是否与另一个指定的String东西具有不异的值
    string str1 = "abcd";
    Console.WriteLine(str1.Equals("abcd"));
    //输出功效是True
   (3)bool Equals(String,String)  确定两个指定的String东西是否具有不异的值
    Console.Write(string.Equals("1234", "1234"));
    //输出功效是True
   (4)bool Equals(String,StringComparison)  确定此字符串是否与指定的 String 东西具有不异的值。
   参数指定区域性、巨细写以及对照所用的排序法则。
    string str="HanYingLong";
    Console.WriteLine(str.Equals("hanyinglong", StringComparison.OrdinalIgnoreCase));
    //输出功效是True
   (5)bool Equals(String,String,StringComparison) 确定两个指定的 String 东西是否具有同一值。
   参数指定区域性、巨细写以及对照所用的排序法则。
    //Console.WriteLine(string.Equals("AdssdS", "adssds", StringComparison.OrdinalIgnoreCase));
    输出功效True
  返回值是bool类型,所以我们能够判断出来如果功效相等的话就返回True,否则返回False
  注释:如果仅仅对照两个字符串是否相等,还是使用"=="对照简单
   Console.WriteLine("请输入一个字符串");
   string str1 = Console.ReadLine();
   Console.WriteLine("请输入第二个字符串");
   string str2 = Console.ReadLine();
   // 不考虑巨细写的对照
   bool isEqual = str1.ToLower() == str2.ToLower();
1.4 字符串的合并和支解
 合并Join要领:在指定 String 数组的每个元素之间串联指定的分隔断绝分手符 String,从而孕育产生单个串联的字符串。
  要领原型 
   详细介绍:将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔断绝分手符str
      string.Join(str,strArr);
   (1) string string.Join(String,String[]);
    Console.WriteLine(string.Join("迎", new string[] { "韩", "龙","我" }));
    Console.WriteLine(string.Join("迎", new char[] { ‘韩‘, ‘龙‘, ‘我‘ }));
    //输出功效是:韩迎龙迎我
   (2) string string.Join(String,String[],Int32,Int32)
    String[] val = { "apple", "orange", "grape", "pear" };
    String sep = ",";
    String result = String.Join(sep, val, 1, 2);
    Console.WriteLine(result);
   //输出功效是orange,grape
 支解Split要领:返回的字符串数组包罗此实例中的子字符串
  要领原型
   (1)string[] Split(Char[]) //返回的字符串数组包罗此实例中的子字符串
    string str = "I Have a Dream";
    string[] divisionstr = str.Split(new char[] { ‘ ‘ });
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出功效是:IHaveDream,去失了空格
   (2)string[] Split(Char[],Int32)  //返回的字符包罗此实例中的子字符串,参数指定返回的子字符串的最大数量
    string str = "I Have a Dream";
    string[] divisionstr = str.Split(new char[] { ‘ ‘ }, 2);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出功效:IHave a Dream  ,int count将字符串截为几段的意思
   (3)string[] Split(Char[],StringSplitOptions)  //返回的字符串包罗此实例中的子字符串,参数指定是否
   返回空数组元素
    string str = " 梅西| 卡 卡|小龙 ";
    string[] divisionstr = str.Split(new char[] { ‘|‘,‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出功效是:梅西卡卡小龙
   (4)string[] Split(String[],StringSplitOptions) //返回的字符串包罗此实例中的子字符串,参数指定是否
   返回空数组元素
    string str = "梅西|卡卡|小龙";
    string[] divisionstr = str.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出功效是:梅西卡卡小龙
   (5)string[] Split(Char[],Int32,StringSplitOptions) //返回的字符串数组包罗此字符串中的子字符串,参数
   指定要返回子字符串的最大数量,以及是否要返回空数组元素。
    string str = "梅西|卡卡|小龙";
    string[] divisionstr = str.Split(new char[] { ‘|‘ }, 2, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出功效是:梅西卡卡|小龙
   (6)string[] Split(String[],Int32,StringSplitOptions) //返回的字符串数组包罗此字符串中的子字符串,参数
   指定要返回子字符串的最大数量,以及是否要返回空数组元素。
    string str = "梅西|卡卡|小龙";
    string[] divisionstr = str.Split(new string[] { "|" }, 2, StringSplitOptions.RemoveEmptyEntries);
    foreach (string s in divisionstr)
    {
     Console.Write(s);
    }
    //输出功效是:梅西卡卡|小龙
1.5 字符串的查找
 Contains要领:返回一个值,该值指示指定的String东西是否呈此刻此字符串
  要领原型
   bool <strName>.Contains(String value); //暗示字符串<strName>中是否包罗value,如果包罗,返回True,否则返回False
    Console.Write("请输入一个字符串:");
    string str = Console.ReadLine();
    if (str.Contains("abc"))
    {
     Console.WriteLine("字符串{0}包罗{1}", str, "abc");
    }
    else
    {
     Console.WriteLine("字符串{0}不包罗{1}", str, "abc");
    }
 IndexOf要领:String或一个或多个字符在此字符串中的第一个匹配项
  要领原型
   (1)int <strName>.IndexOf(String)  指定字符在此字符串中的第一个匹配项的索引
    string str = "让世界变得更美好";
    int res = str.IndexOf("好");
    Console.WriteLine(res);
    //输出功效是:7
   (2)int <strName>.IndexOf(String,Int32) 指定字符串中的第一个匹配项的索引,该搜索从指定字符位置开始
    string str = "让世界变得更美好";
    int res = str.IndexOf("世界变得", 0);
    Console.WriteLine(res);
    //输出功效是:1
 LastIndexOf要领:String或一个活多个字符在此字符串中的最后一个一个匹配项
  要领原型
   (1)int <strName>.LastIndexOf(String) 指定字符在字符串中的最后一个匹配项的索引
    string str = "让世界好得更美好";
    int res = str.LastIndexOf("好");
    Console.WriteLine(res);
    //输出功效:7
   (2)int <strName>.LastIndexOf(String,Int32) 指定字符串中的第一个匹配项的索引,该搜索从指定字符位置开始
    string str = "让世界好得更好美好";
    int res = str.LastIndexOf("得", 4);
    Console.WriteLine(res);
    //输出功效是:4
 IndexOpAny要领 指定字符数组中的任意字符在此实例中第一个匹配项的索引
  要领原型
   (1)int <strName>.IndexOpAny(Char[]) 指定字符数组中的任意字符在此实例中第一个匹配项的索引。
    string str = "地球很美好,我们很喜欢";
    int res = str.IndexOfAny(new char[] { ‘s‘, ‘我‘ });
    Console.WriteLine(res);
    //输出功效:0
   (2)int <strName>.IndexOpAny(Char[],Int32) 指定字符数组中的任意字符在此实例中第一个匹配项的索引。
   搜索从指定字符位置开始
    string str = "地球很美好,我们很喜欢";
    int res = str.IndexOfAny(new char[] { ‘球‘, ‘我‘, ‘喜‘ }, 0);
    Console.WriteLine(res);
    //输出功效:1
   (3)int <strName>.IndexOpAny(Char[],Int32,Int32)指定字符数组中的任意字符在此实例中第一个匹配项的索引。
   搜索从指定字符位置开始,并查抄指定数量的字符位置。
    string str = "地球很美好,我们很喜欢";
    int res = str.IndexOfAny(new char[] { ‘球‘, ‘我‘, ‘喜‘ }, 2, 5);
    Console.WriteLine(res);
    //输出功效:6
 LastIndexOpAny要领和LastIndexOf要领的使用基真不异
1.6 求子字符串
 要领原型
  (1)string <strName>.SubString(Int32)  检索字符串,子字符串从指定的字符开始
   string str = "我爱中国";
            string res = str.Substring(2);
            Console.WriteLine(res);
   输出功效:中国
  (2)string <strName>.SubString(Int32,Int32) 检索字符串,子字符串从指定的字符开始,并且具有指定的长度
   string str = "我爱中国,中华名族万岁";
            string res = str.Substring(2, 5);
            Console.WriteLine(res);
   输出功效:中国,中华
 总结:string <strName>.SubString(int startIndex,int length);
 从字符串strName的startIndex位置开始提取长度为length的字符串,如果省略第二个参数则暗示一直到最后
1.7 字符串的插入移除和替换
  字符串的插入
   要领原型
    string <strName>.Insert(Intzv32 startIndex,string value)在此实例中的指定索引位置插入一个指定的 String 实例。
     string str = "我中国";
     string res = str.Insert(1, "爱");
     Console.WriteLine(res);
     输出功效:我爱中国
   总结:在字符串<strName>的startIndex位置上插入value,本来的字符依次后移,酿成一个新的字符串
  字符串的移除
   要领原型
    (1)string <strName>.Remove(Int32 startIndex) 删除此字符串中从指定位置到最后位置的所有字符
     string str = "我爱中国日本大和民族";
     string res = str.Remove(4);
     Console.WriteLine(res);
     输出功效:我爱中国
    (2)string <strName>.Remove(Int32 StartIndex,Int32 Length)  从指定位置开始删除指定数目的字符
     string str = "我爱中国日本&大和民族";
     string res = str.Remove(4, 2);
     Console.WriteLine(res);
     
     输出功效:我爱中国&大和民族
   总结:从字符串<strName>中移除StartIndex开始,长度为Length的字符串,剩下的字符凭据本来的挨次从头排成
    一个新的字符串,如果省略第二个参数,将移除StartIndex后面的所有的字符串
  字符串的替换
   要领原型
    (1)string <strName>.WordStr(char oldchar,char newchar)  将字符串<strName>中的oldchar替换为newchar
     string str = "我爱中华&美国";
     string res = str.WordStr(‘&‘, ‘和‘);
     Console.WriteLine(res);
     输出功效:我爱中华和美国
    (2)string <strName>.WordStr(string oldvalue,string new value) 将字符串<strName>中的oldvalue替换为newvalue
     string str = "我爱中华&美国";
     string res = str.WordStr("美国", "天朝");
     Console.WriteLine(res);
     输出功效是:我爱中华&天朝  
1.8 判断开始和结束
 StartsWith开始
  要领原型
   bool <strName>.StartsWith(String value) 确定此实例的开头是否与指定的字符串匹配
    string str = "我爱中华";
    bool istrue = str.StartsWith("我哎");
    Console.WriteLine(istrue);
    输出功效是:False
 EndsWidth结束
  要领原型
   bool <strName>.EndsWith(string value) 确定此实例的结尾是否与指定的字符串匹配
    string str = "我爱中华";
    bool istrue = str.EndsWith("中国");
    Console.WriteLine(istrue);
    输出功效:False
1.9 字符串的赋值
 Copy要领
  要领原型
   string String.Copy(string str);  创建一个与指定String具有不异值的String的新实例
    string str = "韩迎龙";
    string res = string.Copy(str);
    Console.WriteLine(res);
    输出功效是:韩迎龙
 CopyTo要领
  要领原型
   string <strName>.CopyTo(int sourceIndex,char[] destination,int destinationIndex,int count)
   //将指定数目的字符今后实例中的指定位置复制到字符数组中的指定位置
   string dest = "Hello world";
            string source = "Goodbye China";
            char[] destArray = dest.ToCharArray();//将dest酿成字符数组
            source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放
            dest = new string(destArray);//这时dest为"Hello China"
            Console.WriteLine(dest);
   输出功效是:Hello China

总结:字符串具有不成变性,对字符串的改削,实际上都是从头得到一个字符串,,从头赋值