1、string类常用方法
ToLower(): 得到字符串的小写形式。
注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。s.ToLower()与s = s.ToLower()
ToUpper(): 得到字符串的大写形式,Trim()去掉字符串两端的空白。
S1.Equals(s2, StringComparison.OrdinallgnoreCase),两个字符串进行比较不区别大小写的比较。
Console.WriteLine("输入第一门课程");
string str1 = Console.ReadLine();
//str1 = str1.ToUpper();//把字符串转换成大写的
str1 = str1.ToLower();//把字符串转换成小写的
Console.WriteLine("输入第二门课程");
string str2 = Console.ReadLine();
//str2 = str2.ToUpper();
str2 = str2.ToLower();
if (str1 == str2)
{
Console.WriteLine("课程一样" + str1);
}
else
{
Console.WriteLine("课程不同{0}--------------{1}", str1, str2);
}
Console.ReadKey();
Console.WriteLine("输入第一门课程");
string str1 = Console.ReadLine();
Console.WriteLine("输入第二门课程");
string str2 = Console.ReadLine();
bool result = str1.Equals(str2,StringComparison.OrdinalIgnoreCase);//忽略大小写
if (result )
{
Console.WriteLine("课程相同");
}
else
{
Console.WriteLine("课程不同");
}
Console.ReadKey();
2、String str = null 与string str = ""说明其中的区别。
答:String str = null 是不给他分配内存控件,而string str = "" 给它分配长度为空字符串的内存控件。String str = null 没有string对象, string str = ""有一个字符串对象。
3、谁说字符串不可变?String s = “abc” s = “123”,s这不是变了吗?
要区分变量名和变量指向的值的区别。程序中可以有很多字符串,然后由字符串变量指向他们,变量可以指向其他的字符串,但是字符串本身没有变化。字符串不可变性指的是内存中的字符串不可变,而不是变量不变。
4、字符串的分割
String[] Split (params char[] separator) :将字符串按照指定的分割符分割为字符串数组;
String[] Split (char[] separator, StringSplitOptions options)将字符串按照指定的char 分割符分割为字符串数组(options 取 RemoveEmptyEntries 的时候移除结果中的空白字符串);
string str = "哈 哈-------,我 又 变 帅 了";
char[]chs = new char[] { ' ', '-' };
string[]result = str.Split(chs, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < result .Length ; i++)
{
Console.Write(result[i] );
}
Console.ReadKey();
5、字符串函数详解
1)字符串替换:string Replace(string oldValue, string newValue)
将字符串中出现的 oldValue的地方替换为 newValue。例子:名字替换。
tring name = "小杨很邪恶";
//name = name.Replace('很', '不');
name = name.Replace("小杨", "老李");
Console.WriteLine(name );
Console.ReadKey();
2)取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串。
String Substring(int startIndex, int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。
string str = "哈哈,我又变漂亮了";
str = str.Substring(3,6);//截取字符串
Console.WriteLine(str );
Console.ReadKey();
3)Bool Contains(string value)判断字符串中是否含有子串value
string name = "小杨很邪恶";
bool result = name.Contains("小杨");
if (result)
{
Console.WriteLine("字符串中包含这个字符串");
}
else
{
Console.WriteLine("不包含这个字符串");
}
Console.ReadKey();
4)Bool StartsWith(stringvalue)判断字符串是否以子串value开始。
Bool EndsWith(string value)判断字符串是否以子串value结束
string str = "小杨很纯洁";
//bool result = str.StartsWith("小杨很纯");//判断字符串是否以某个字符串开始的
bool result = str.EndsWith("纯洁");//判断字符串是否以某个字符串结束的
if (result )
{
Console.WriteLine("是");
}
else
{
Console.WriteLine("不是");
}
Console.ReadKey();
5)Int IndexOf(string value):取子串value第一次出现的位置
拓展:string str = "小杨和纯洁,哈哈,果然很帅";
1)//int index = str.IndexOf("的");//如果这个字符串在这个字符串中,就会吧这个字符串的索引显示出来,但如果不在,返回的结果为-1
2)//int index = str.IndexOf("哈", 6);//找一个字符串,从某个索引开始找,找到了就返回索引,找不到就返回-1
3)int index = str.LastIndexOf("帅");//找最后一个字符串的索引
Console.WriteLine(index);
Console.ReadKey();
4)
string st = "哈哈,我变漂亮了";
st = st.Insert(4,"又");//在某个索引处插入一个字符串
Console.WriteLine(st);
Console.ReadKey();
6、字符串的处理
string可以看做是char的只读数组。Char c = s【1】;例子:遍历输出string中的每个元素
C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
如果要对char进行修改,那么就必须创建一个新的字符串,用 s . ToChararry()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A特换为a
string text = "哈哈,小杨又帅了";
char[] chs = text.ToCharArray();//变成字符数组
chs[5] = '很';//改值
string str = new string(chs);//变成新的字符串
Console.WriteLine(str );