1.字符是一个只读的字符数组。
2.字符串不可变。
3.要想改变字符串,先通过tochararray()得到char数组,改变值,再通过new string生成新的字符串。
(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()。这是一个构造函数。
bool result = str.Contains("好帅啊");//str中是否包含该字符串
需要定义一个布尔类型的变量来接受。
(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表示不考虑大小写。
不知道谁开发的这些代码,太神奇了,感觉麻烦,别着急,肯定会有更简单的方法。非常期待可以遇到更多这样的代码,也许有一天自己也可以创造出一些简单的方法供别人使用。
#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指把空字符删掉使得剩下的字符串中间没有空格。删完之后用一个字符串数组接受,因为删掉一些字符后剩下的一些隔开的字符串。
#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替换。括号内是(旧的内容,新的内容)
字符串从一开始接触编程就了解了,但是不知道还有这么多细节。这些都是些基础的知识,掌握好这些,以后进行复杂的编程的时候的就得心应手了。尝试着去寻找新的解决问题的方法,相信只要算法复杂就一定有简单的,只是还没有发现或还没有被开发出来。