c#对字符串的各种操作

时间:2021-05-05 16:13:49
1.字符串定义
2.在字符串后面追加字符串
3.获取字符串长度
4.截取字符串的一部分
5.字符串转为比特码
6.查指定位置是否为空字符
7.查字符串是否是标点符号
8.截头去尾(Trim)
9.替换字符串
10.得到用单个字符串分隔字符串单元
11.得到用多个字符分隔字符串单元
12.得到用字符串分隔字符串单元
13.int转字符串的格式
14.在字符串中插入‘-’的3种方法
15.字符串用下标访问字符
16.拆分字符串
17.匹配索引
18.大小写转换
19.填充对齐
20.插入和删除(Insert和Remove)
21.格式化(静态方法Format)
22.连接成一个字符串(静态方法Concat、静态方法Join和实例方法StringBuilder.Append)
23.比较字符串
24.字符串遍历
25.Int32.Parse() 与 Int32.TryParse() 与 Convert.ToInt32()的区别


//1.字符串定义
        string str = "tes";

       

 //2.在字符串后面追加字符串
        str += "t";


        

//3.获取字符串长度
        int strLength = str.Length;


       

 //4.截取字符串的一部分Substring(起始位置,截取位数)
        string s1 = str.Substring(0,2);


        

//5.字符串转为比特码
        byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);


       

 //6.查指定位置是否为空字符IsWhiteSpace(字符串变量,位数)
        char.IsWhiteSpace(str, 3);


       

 //7.查字符串是否是标点符号IsPunctuation('字符')
        char.IsPunctuation('A');


       

 //8.截头去尾(Trim)
        string str = "__AB__CD__";
        str.Trim('_'); // 移除字符串中头部和尾部的'_'字符,输出"AB__CD"
        str.TrimStart('_'); // 移除字符串中头部的'_'字符,输出"AB__CD__"
        str.TrimEnd('_'); // 移除字符串中尾部的'_'字符,输出"__AB__CD"


        

//9.替换字符串或字符
        string str="你好da";
        str = str.Replace("你","他");
        str = str.Replace('a', 'b');
        

//10.得到用单个字符串分隔字符串单元
        string str="aaa,bbb,ccc";
        string[] sArray = str.Split(',');
        

//11.得到用多个字符分隔字符串单元   得到以'j'或's'分隔的各个字符串
        string str = "aaajbbbscccjdddseee";
        string[] sArray = str.Split(new char[2] { 'j', 's' });
        

//12.得到用字符串分隔字符串单元   得到以'js’分隔的各个字符串
        string str = "aaajsbbbjsccc";
        string[] sArray = Regex.Split(str, "js", RegexOptions.IgnoreCase);
        

//13.int转字符串的格式
        12345.ToString("n");//生成12,345.00   自动加千分符
        12345.ToString("C");//生成¥12,345.00
        12345.ToString("e");//生成1.234500e+004
        12345.ToString("f4");//生成12345.0000
        12345.ToString("x");//生成3039(16进制)
        12345.ToString("p");//生成1,234,500.00%
       

 //14.在字符串中插入‘-’的3种方法
        string str = "123456789";
        str = int.Parse(a).ToString("##-###-####");
        string str = "123456789";
        str = str.Insert(5,"-").Insert(2,"-");
        string str="123456789";
        Regex reg = new Regex(@"^(d{2})(d{3})(d{4})$");
        str = reg.Replace(str,"$1-$2-$3");
        

//15.字符串用下标访问字符
        char c = str[0];
        

//16.拆分字符串
        char[] arr = str.ToCharArray();
        

//17.匹配索引
        str = "ABCABCD";
        str.IndexOf('A'); // 从字符串头部开始搜索第一个匹配字符A的位置索引,输出"0"
        str.IndexOf("BCD"); // 从字符串头部开始搜索第一个匹配字符串BCD的位置,输出"4"
        str.LastIndexOf('C'); // 从字符串尾部开始搜索第一个匹配字符C的位置,输出"5"
        str.LastIndexOf("AB"); // 从字符串尾部开始搜索第一个匹配字符串BCD的位置,输出"3"
        str.IndexOf('E'); // 从字符串头部开始搜索第一个匹配字符串E的位置,没有匹配输出"-1";
        str.Contains("ABCD"); // 判断字符串中是否存在另一个字符串"ABCD",输出true
       

 //18.大小写转换
        str.ToLower(); // 转化为小写
        str.ToUpper(); // 转化为大写
       

 //19.填充对齐
        str = "ABCD";
        str.PadLeft(6, '_'); // 使用'_'填充字符串左部,使它扩充到6位总长度,输出"__ABCD"
        str.PadRight(6, '_'); // 使用'_'填充字符串右部,使它扩充到6位总长度,输出"ABCD__"
       

 //20.插入和删除(Insert和Remove)
        str = "ADEF";
        str.Insert(1, "BC"); // 在字符串的第2位处插入字符串"BC",输出"ABCDEF"
        str.Remove(1); // 从字符串的第2位开始到最后的字符都删除,输出"A"
        str.Remove(0, 2); // 从字符串的第1位开始删除2个字符,输出"EF"
       

 //21.格式化(静态方法Format)
        string.Format("{0} + {1} = {2}", 1, 2, 1 + 2);
        string.Format("{0} / {1} = {2:0.000}", 1, 3, 1.00 / 3.00);
        string.Format("{0:yyyy年MM月dd日}", DateTime.Now);
       

 //22.连接成一个字符串(静态方法Concat、静态方法Join和实例方法StringBuilder.Append)
        str = "A,B,C,D";
        string[] arr3 = str.Split(','); // arr = {"A","B","C","D"}
        string.Concat(arr3); // 将一个字符串数组连接成一个字符串,输出"ABCD"
        string.Join(",", arr3); // 以","作为分割符号将一个字符串数组连接成一个字符串,输出"A,B,C,D"
        StringBuilder sb = new StringBuilder(); // 声明一个字符串构造器实例
        sb.Append("A"); // 使用字符串构造器连接字符串能获得更高的性能
        sb.Append('B');
        sb.ToString();// 输出"AB"
        

//23.比较字符串  
        int result; //result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2 
    bool bresult; 
    string s1="aaaa"; 
    string s2="bbbb"; 
        result=String.Compare(s1,s2); 
    result=s1.CompareTo( s2 ); 
    result=String.CompareOrdinal(s1,s2);
        

//24.字符串遍历
    string str = "This is a test!";
    foreach (char myChar in str)
    {


    }
        

//25.Int32.Parse() 与 Int32.TryParse() 与 Convert.ToInt32()的区别
         //Int32.TryParse()性能优于Convert.ToInt32()优于Int32.Parse()。
        //他们都是将字符串强制转换为int32类型,当要转换的字符串为非空字符时他们三者的效果相同;
        //但要转换的字符串为null时会有区别如下实例
        string strint = null;
        int num = 0;
        Int32.Parse(strint);//会抛出异常;
        Convert.ToInt32(strint);//不会抛出异常,返回值为0;
        Int32.TryParse(strint, out num);//不会抛出异常,返回值为0,但当转换正确时返回的是true,否则返回false。