C#--字符串分割、返回索引值
⽬录
思维导图
1.字符串与数组的相互转换
//字符串处理
string text = "哈哈,我很开⼼";      //定义⼀个字符串变量
Console.WriteLine(text.Length );    //获取字符串的长度,结果为7
char[] chs=text.ToCharArray();      //将字符串转换成字符数组
//将“开⼼”改为“⾼兴”
chs[5] = '⾼';  //改值
chs[6] = '兴';  //改值
text = new string(chs);        //将字符数组转换成字符串
Console.WriteLine(text);        //输出结果:"哈哈,我很⾼兴"
Console.ReadKey();
(1)string可以看做是char的只读字符数组。所。以上述text字符串可以变成⼀个char[]数组。char[] chs=text.ToCharArray();        这是将字符串转换成字符数组
(2)c#中字符串有⼀个重要的特性:不可变性,字符串⼀旦声明就不可以在改变。所以只能通过索引来读取指定
位置的char,不能对指定位置的char进⾏修改。
(3)那么如何改变字符串的内容呢(其实并没有真正意义的改变原字符串)?
过程:string→char数组→改数组值→string
⾸先,⽤s. ToCharArray()⽅法得到字符串的char数组,⽤chs[i]对数组进⾏修改,⽤new string(char[])这个构造函数来将char数组再转变为字符串。
2.⼤⼩写的转换
(1)ToLower():得到字符串的⼩写形式.
(2)ToUpper():得到字符串的⼤写形式.
(3)两个字符串不区分⼤⼩写的⽐较:  s1.Equals(s2, StringComparison.OrdinalIgnoreCase),返回的类型为bool类型
注意:字符串是不变的,所以这些函数都不会直接改变字符串的内容,⽽是把修改后的字符串的值通过函数返回值的形式返回.
string str1 = ".NET";
string str2 = "";
str1 = str1.ToLower();  //将.NET转换成⼤写
str2 = str2.ToUpper();  //将转换成⼤写
//两个学员输⼊各⾃最喜欢的课程名称,判断是否⼀致,如果相等,则输出你们俩喜欢相同的课程.如果不相同,则输出你们俩喜欢不相同的课程.
Console.WriteLine("请输⼊你最喜欢的课程名称");
string class1 = Console.ReadLine();        //接收输⼊的课程名称1
Console.WriteLine("请输⼊你最喜欢的课程名称");
string class2 = Console.ReadLine();        //接收输⼊的课程名称2
bool result=class1.Equals(class2, StringComparison.OrdinalIgnoreCase);    //忽略⼤⼩写的⽐较
if (result)                              //返回结果为true
{
Console.WriteLine("课程⼀样");
}
else
{
Console.WriteLine("课程不⼀样");      //返回结果为false
}
Console.ReadKey();
3.字符串处理--返回类型为bool类型的
(1).判断字符串是否以⼦串value开始;------bool StartsWith(string value)
(2)判断字符串是否以⼦串value结束;------bool EndsWith (string value)
(3)判断字符串是否为空(函数⽤来判断字符串是否为null或者为空,返回类型为bool类型)-----bool
result=string.IsNullOrEmpty(str);
(4)判断字符串中是否包含⼦字符串---contains---返回值bool
//下⾯三个⽅法endswith,startswith和cantains返回值类型都是bool类型的,可以类⽐学习
#region 判断某个字符串是否以某个字符开始
string str = "哈哈,今天很开⼼";
bool result = str.StartsWith("哈哈");  //判断字符串是都以“哈哈”开始的
if (result)
{
Console.WriteLine("是以这个字符串开始的");
}
else
{
Console.WriteLine("不是以这个字符串开始的");
}
Console.ReadKey();
#endregion
#region 判断某个字符串是否以某个字符结尾
string str1 = "哈哈,今天真的很开⼼";
bool result1 = str.EndsWith("开⼼");
if (result)
{
Console.WriteLine("是以这个字符串结尾的");
}
else
{
Console.WriteLine("不是以这个字符串结尾的");
}
Console.ReadKey();
#endregion
#region 判断某个字符串中是否包含着指定⼦字符串
string str2 = "哈哈,今天真的很开⼼";
bool result2 = str.Contains("很");
if (result)
{
Console.WriteLine("包含这个字符串");
}
else
{
Console.WriteLine("不包含这个字符串");
}
Console.ReadKey();
#endregion
#region 判断某个字符串中是否为空或者未null值
string str3 = "123445";
bool result=string.IsNullOrEmpty(str3);  //此函数⽤来判断字符串是否为null或者为空,返回类型为bool类型            if (result)
{
Console.WriteLine("⽆任何内容");
}
else
{
Console.WriteLine("你猜");
}
Console.ReadKey();
#endregion
}
}
}
4. 寻索引值
索引值的函数:分别为indexof(它有两个重载)和LastIndexOf。
作⽤:在⼀个字符串中寻⼀个⼦字符出现的位置,也就是它的索引值,如果这个⼦字符串存在,就返回它的索引值,如果不存在,就返
回-1。
下⾯举例介绍⼀下三种⽅法:
string str = "你好,哈哈,今天天⽓真好";
//第⼀种⽅法:int 返回的索引值=字符串.indexof("要查的字符串");
int index = str.IndexOf("今");  //如果这个字符串在这个字符串中,那么就会把这个字符串的索引显⽰出来,那么,如果不到这个字符串返回的结果是-1            Console.WriteLine(index);
Console.ReadKey();
//第⼆种⽅法:int 返回的索引值=字符串.indexof("要查的字符串",从哪个索引开始查)
string str1 = "adfjdslkaddjdffasa";
int index1 = str1.IndexOf("a",1);    //⼀个字符串,从第1个索引开始,到了就返回索引值,不到就返回-1
Console.WriteLine(index1);
Console.ReadKey();
//第三种⽅法:是字符串最后出现位置的索引
string str2 = "哈哈,真的很开⼼⼼啊啊啊啊--放的地⽅-的地⽅啊-"; //最后⼀个字符串的索引
int index2 = str2.LastIndexOf("-");  //"-"在字符串中最后出现的最值的索引
Console.WriteLine(index2);
Console.ReadKey();
5.字符串常规处理--返回string类型
//sunstring截取字符串
string str = "你好啊,今天天⽓很好呀";
string result = str.Substring(4);  //⼦字符串从指定的字符串开始到末尾,参数为起始位置,结果显⽰”今天天⽓很好啊“
write的返回值string result2 = str.Substring(6,2); //⼦字符串从指定的字符串开始并且指定字符串长度,第⼀个参数为起始位置,第⼆个参数为截取长度,结果显⽰“天⽓”
//remove删除字符串
string str = "哈哈,今天阳光明媚";
//str=str.Remove(3);  //返回从指定位置开始删除字符串之后返回的字符串结构,参数为要从哪个位置开始删除,,返回哈哈,
str = str.Remove(3, 2);  //第⼀个参数为从哪个位置开始删除,第⼆个参数为删除⼏个,返回删除后剩余的字符串,删去今天两字
//去空--去掉字符串⾸和尾的空格
string name = " fdfd@fdf  ";
name = name.Trim();        //将字符串⾸尾的空格去除,不包括中间的
name = name.TrimEnd();    //将字符串尾部的空格去除
name = name.TrimStart();  //将字符串⾸部的空格去除
//字符串替换--replace
string weather= "今天天⽓很晴朗";
weather=weather.Replace("晴朗", "**");      //将晴朗替换为“**”
//insert在指定位置插⼊字符
string str = "哈哈今天天⽓真好啊";
str = str.Insert(2, ",");  //在“哈哈”后⾯加⼀个“,”
6. 分割字符串:返回⼀个字符串数组
先举⼀个例⼦⼤家看⼀下,下⾯这个代码,“哈哈----------------你很              聪明“这句话中间多了很多空格和横线,通过split函数可以
将这些空格和‘-’去掉,同时,以空格和‘-’为界限,将上述⼀个完整的字符串变成⼀个字符串数组。字符串数组中有三个元素,分别
为“哈哈”,“你很”,聪明“”。
string str = "哈哈--------你很聪明。";
char[] chr = new char[] {'-',' ' };    //将要分割的内容放在数组当中,在这⾥分割'-'和空格
string[] result = str.Split(chr, StringSplitOptions.RemoveEmptyEntries);  //split⽅法是把字符串中数组⾥⾯包含的‘-’和空格去除掉,同时以空格和‘-’作为分割符把            for (int i = 0; i < result.Length; i++)
{
Console.Write(result[i]);    //将字符串数组遍历输出
}
Console.ReadKey();
那么它有什么⽤呢,通过下⾯这个例⼦相信⼤家能更加理解split这个函数到底是⼲什么⽤的
举例:从Email中提取出⽤户名和域名:abc@163。  ⽤户名:abc  域名:
思路:利⽤split分割字符串,以@作为分割符,将字符串分割为⽤户名和域名两部分
string e_mail = "abc@163";    //定义⼀个string类型的字符串
char[] chr = new char[] { '@'};    //定义⼀个字符数组存放要分割的内容
string[] result=e_mail.Split(chr,StringSplitOptions.RemoveEmptyEntries);  //从字符串中将@分离,并且去掉结果中的空字符,将结果定义成⼀个字符串数组            Console.WriteLine("⽤户名为为{0},域名为{1}", result[0],result[1]);
Console.ReadKey();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。