字符串判等 Equals()
/**
* Equals() 判断两个字符串是否相等,若相等则返回True,否则返回False
* 语法:字符串变量1.Equals(字符串2)
* 调用string类的静态方法: string.Equals(字符串1, 字符串2)
*/
string str1 = "aaa";
Console.WriteLine(str1.Equals("aaa")); // true <==> str1 == "aaa"
Console.WriteLine(str1.Equals("bbb")); // flase
Console.WriteLine(string.Equals(str1, "aaa")); // true
字符串比较 CompareTo( )
/**
* CompareTo( )用于比较字符串变量与给定字符串的大小,返回值为0、1或者-1
* 字符串的比较方式是,找到两个字符串中第一个不相同的字符,该字符ASCII值小的字符串较小。
* 若一直比较到字符串结束,每个对应字符都相同,那么若两个字符串长度相同,则两个字符串相等;
* 若两个字符串长度不同,则短的字符串较小。
* 若字符串变量小于字符串2,则返回-1,反之返回1;若字符串变量与字符串2相等,则返回0。
* 语法: 字符串变量.CompareTo(字符串2)
* 也可以使用静态方法Compare( )比较字符串1和字符串2的大小,相等则返回0,字符串1小则返回-1,字符串1大则返回1
* 语法: string.Compare(字符串1, 字符串2);
*/
string s = "123";
string str = s;
Console.WriteLine(s.CompareTo(str)); // 0
Console.WriteLine(s.CompareTo("121")); // 1
Console.WriteLine(string.Compare(str, "124")); // -1
字符串包含 Contains( )
/**
* Contains( )用于判断字符串变量是否包含指定字符或字符串,是则返回True,否则返回False。
* 语法: 字符串变量.Contains(字符1/字符串1);
*/
string s = "123";
Console.WriteLine(s.Contains("1")); // true
Console.WriteLine(s.Contains("12")); // true
Console.WriteLine(s.Contains("123")); // true
Console.WriteLine(s.Contains("1234")); // false
字符串位置 IndexOf( )
/**
* IndexOf( )用于查找给定字符或字符串在字符串变量中第一次出现的位置,返回字符或者字符串首字母在字符串变量中的位置数值。
* 不存在,则返回-1
* 语法:字符串变量.IndexOf(字符1)
* LastIndexOf( ),用于查找给定字符或字符串在字符串变量中最后一次出现的位置数值。
*/
string s = "123123";
Console.WriteLine(s.IndexOf("1")); // 0
Console.WriteLine(s.IndexOf("23")); // 1
Console.WriteLine(s.IndexOf("4")); // -1
Console.WriteLine(s.LastIndexOf("2")); // 4
字符串截取 SubString( )
/**
* SubString( )用于从字符串变量中获取指定位置开始的指定长度的子字符串,如果未指定子字符串长度,则取至字符串变量结尾,返回值为该子字符串。
* 语法:字符串变量.SubString(起始位置, 字符串长度)
* 无长度参数即为从起始位置到末尾
* 若起始位置或者子字符串长度超出字符串变量允许范围,则系统返回异常ArgumentOutOfRangeException。
*/
string str = "Hello World!";
Console.WriteLine(str.Substring(6)); // world
Console.WriteLine(str.Substring(0, 4)); // hell
插入子串 Insert( )
/**
* Insert( )用于在字符串变量中指定位置插入给定子字符串,返回值为该子字符串。
* 语法:字符串变量.Insert(起始位置, 子字符串2)
*/
string str = "world!";
Console.WriteLine(str.Insert(0, "hello ")); // hello world
删除子串 Remove( )
/**
* Remove( )用于在字符串变量中删除指定位置开始的指定长度的子字符串,返回值为删除指定子串后的字符串变量。
* 语法:字符串.Remove(起始位置, 子串长度)
* 无长度参数即为从起始位置到末尾
*/
string str = "this is a test";
Console.WriteLine(str.Remove(0, 5)); // is a test
Console.WriteLine(str.Remove(1, 5)); // ts a test
Console.WriteLine(str.Remove(4)); // this
替换子串 Replace( )
/**
* Replace( )用于替换字符串变量中的指定字符或子字符串,返回值为替换完毕后的字符串变量
* 语法:字符串变量.Replace(字符1, 字符2) // 用字符2替换字符1
* 或者:字符串变量.Replace(字符串1, 字符串2) // 用字符串2替换字符串1
*/
string str = "Tom is a good boy!";
Console.WriteLine(str.Replace("Tom", "Jack")); // Jack is a good boy!
Console.WriteLine(str.Replace('o', 'k')); // Tkm is a gkkd bky!
去除字符串空格 Trim( )
/**
* Trim( )用于去除字符串变量中头部和尾部的空格,返回值为去除空格的字符串变量
* 语法:字符串变量.Trim()
* TrimStart()与TrimEnd()可以分别去除头部和尾部的空格
*/
string str = " this is a test ";
Console.WriteLine(str); // (3空格)this is a test(3空格)
Console.WriteLine(str.Trim()); // this is a test
Console.WriteLine(str.TrimStart()); // this is a test(3空格)
Console.WriteLine(str.TrimEnd()); // (3空格)this is a test
StringBuilder
/**
* String类是引用类型,每次改变String类对象的值,即修改字符串变量对应的字符串,都需要在内存中为新字符串重新分配空间。
* 在某些特定情况,例如,循环中可能需要反复修改一个字符串变量的值,内存开销会比较大。
* StringBuilder类则没有这一问题,StringBuilder类的对象可以调用ToString( )方法将StringBuilder类的内容作为String类字符串输出,
* 调用Append( )和AppendLine( )方法添加内容。
*/
StringBuilder str = new StringBuilder();
str.Append("我爱你!");
str.AppendLine("中国!");
str.Append("我的祖国!");
Console.WriteLine(str); // 我爱你!中国!
// 我的祖国!
Console.ReadKey();