C#——字符串总结

对字符串的认识

1.字符是一个只读的字符数组。
2.字符串不可变。
3.要想改变字符串,先通过tochararray()得到char数组,改变值,再通过new string生成新的字符串。

对字符串的处理

导图

C#——字符串总结_第1张图片

1.字符串和字符数组的相互转换

(1)字符串变成字符数组的第一种方法:
通过循环for i=0; i>= str.length; i++ 把字符串中的每一个字符抽出来组成数组。
(2) 第二种方法:str.tochararray()

#region 字符串和字符数组之间的转换
            string str = "你好高啊";
            char[] chrs = str.ToCharArray();
            chrs[2]='矮';
            str = new string(chrs);
            Console.WriteLine(str );
            Console.ReadLine();

            #endregion

字符数组转化成字符串用的是 new string()。这是一个构造函数。

2.查一个字符串中是否包含某一字符串或字符

 bool result = str.Contains("好帅啊");//str中是否包含该字符串

需要定义一个布尔类型的变量来接受。

3.大小写转换

(1)变成小写

 Console.WriteLine("请输入喜欢的课程名称");
            string str1 = Console.ReadLine();
            str1 = str1.ToLower();

            Console.WriteLine("请输入喜欢的课程名称");
            string str2 = Console.ReadLine();
            str2 = str2.ToLower();

            if (str1 == str2)
            {
                Console.WriteLine("课程名相同" + str1);
            }
            else
            {
                Console.WriteLine("课程名称不同,{0}——————{1}", str1, str2);
            }

str2 = str2.ToLower() 是把字符串变成小写的。比较两个课程的课程名是否相同,可以把所有字符都变成小写在进行比较。
(2)变成大写
str2 = str2.ToUper() 跟变成小写类似。
(3)忽略大小写的比较
在比较两个字符串的时候,可以都变成大写,或小写,再比较,但比较麻烦。只要麻烦就有简单的解法。

 bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);//忽略大小写的比较字符串
            if (result)
            {
                Console.WriteLine("课程名相同" + str1);
            }
            else
            {
                Console.WriteLine("课程名称不同,{0}——————{1}", str1, str2);
            }
            Console.ReadKey();

bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase)
这句代码直接就省了大小写的转换,可以直接比较str1和str2是否一样, StringComparison.OrdinalIgnoreCase表示不考虑大小写。
不知道谁开发的这些代码,太神奇了,感觉麻烦,别着急,肯定会有更简单的方法。非常期待可以遇到更多这样的代码,也许有一天自己也可以创造出一些简单的方法供别人使用。

4. 切掉字符串中不想要的字符

  #region 切掉字符串中不想要的东西 年月日为例
            string str = "1994--- 1--- 22 ---";
            char[] chr = new char[] { ' ', '-' };//把想切掉的东西放到一个char数组中
            string[] result = str.Split(chr, StringSplitOptions.RemoveEmptyEntries);//把str字符串中chr数组中的值删掉, RemoveEmptyEntries把空字符也删掉

            for (int i = 0; i < result.Length; i++)
            {
                Console.WriteLine(result[i]);
            }
            Console.WriteLine("{0}年{1}月{2}日", result[0], result[1], result[2]);
            Console.ReadKey();
            #endregion

第一步:把想要删掉的字符写到一个字符数组中,比如例子中要把空格和- 删掉。
第二步:string[] result = str.Split(chr, StringSplitOptions.RemoveEmptyEntries)
用的是split,括号里放的是要删掉的字符数组,StringSplitOptions.RemoveEmptyEntries指把空字符删掉使得剩下的字符串中间没有空格。删完之后用一个字符串数组接受,因为删掉一些字符后剩下的一些隔开的字符串。

5.替换字符串

           #region 包含 替换字符串
            string str = "朱亚文好帅啊";
            //str=str.Replace('好', ' ');
            bool result = str.Contains("好帅啊");//str中是否包含该字符串
            if (result)
            {
                str = str.Replace("好帅啊", "帅呆了");//替换字符串
            }

            Console.WriteLine(str);
            Console.ReadKey();
            #endregion

先用str.Contains找出要替换的内容,然后 str = str.Replace(“好帅啊”, “帅呆了”),用replace替换。括号内是(旧的内容,新的内容)

总结

字符串从一开始接触编程就了解了,但是不知道还有这么多细节。这些都是些基础的知识,掌握好这些,以后进行复杂的编程的时候的就得心应手了。尝试着去寻找新的解决问题的方法,相信只要算法复杂就一定有简单的,只是还没有发现或还没有被开发出来。

你可能感兴趣的:(C#)