C#比较字符串
2015-11-27 18:15
405 查看
.NET Framework 提供多个方法来比较字符串的值。下表列出并描述了这些值比较方法。
String.Compare 方法提供了将当前字符串对象与另一个字符串或对象进行全面比较的方法。此方法识别区域性。可以使用此函数来比较两个字符串或两个字符串的子串。另外,还提供了考虑或忽略大小写与区域性差异的重载。下表说明了此方法可能返回的三个整数值。
下面的示例使用 Compare 方法来确定两个字符串的相对值。
此示例将 -1 显示到控制台。
前一个示例默认情况下区分区域性。如要执行不区分区域性的字符串比较,请使用 String.Compare 方法的重载,此方法重载允许通过提供 culture 参数指定要使用的区域性。若要查看演示如何使用 String.Compare 方法执行不区分区域性的比较的示例,请参见执行不区分区域性的字符串比较。
String.CompareOrdinal 方法比较两个字符串对象而不考虑本地区域性。此方法的返回值与前一个表中的 Compare 方法返回的值相同。
下面的示例使用 CompareOrdinal 方法来比较两个字符串的值。
此示例将 -32 显示到控制台。
String.CompareTo 方法将当前字符串对象封装的字符串与另一个字符串或对象进行比较。此方法的返回值与前一个表中的 Compare 方法返回的值相同。
下面的示例使用 CompareTo 方法将 MyString 对象与 OtherString 对象进行比较。
此示例将 1 显示到控制台。
String.CompareTo 方法的所有重载在默认情况下都会执行区分区域性和区分大小写的比较。未提供此方法的允许执行不区分区域性的比较的重载。为了使代码清楚,建议您使用 String.Compare 方法,为区分区域性的操作指定 CultureInfo.CurrentCulture 或为不区分区域性的操作指定 CultureInfo.InvariantCulture。若要查看演示如何使用 String.Compare 方法执行区分区域性和不区分区域性这两种比较的示例,请参见执行不区分区域性的字符串比较。
String.Equals 方法可以轻易地确定两个字符串是否相同。这个区分大小写的方法返回布尔值 True 或 False。它可以在现有的类中使用,这一点将在下一个示例中阐释。下面的示例使用 Equals 方法来确定一个字符串对象是否包含词组“Hello World”。
此示例将 True 显示到控制台。
此方法也可用作静态方法。下面的示例使用静态方法比较两个字符串对象。
此示例将 True 显示到控制台。
可以使用 String.StartsWith 方法来确定一个字符串对象是否以构成另一个字符串的同一组字符开始。如果当前字符串对象以传递的字符串开始,则这个区分大小写的方法返回 true,否则返回 false。下面的示例使用此方法来确定一个字符串对象是否以“Hello”开始。
此示例将 True 显示到控制台。
String.EndsWith 方法将传递的字符串与位于当前字符串对象结尾处的字符进行比较。它也返回布尔值。下面的示例使用 EndsWith 方法检查字符串的结尾。
可以使用 String.IndexOf 方法来确定特定字符在字符串中第一次出现的位置。这个区分大小写的方法从字符串的开头开始计数,并使用从零开始的索引返回传递的字符的位置。如果无法找到该字符,则返回值 –1。
下面的示例使用 IndexOf 方法搜索字符“l”在字符串中第一次出现的位置。
此示例将 2 显示到控制台。
String.LastIndexOf 方法类似于 String.IndexOf 方法,不同之处在于它返回特定字符在字符串中最后出现的位置。它区分大小写,并使用从零开始的索引。
下面的示例使用 LastIndexOf 方法来搜索字符“l”在字符串中最后出现的位置。
此示例将 9 显示到控制台。
当与 String.Remove 方法一起使用时,这两种方法都非常有用。可以使用 IndexOf 或 LastIndexOf 方法来检索字符的位置,然后将该位置提供给 Remove 方法以便移除字符或移除以该字符开头的单词。
方法名 | 使用 |
---|---|
String.Compare | 比较两个字符串的值。返回整数值。 |
String.CompareOrdinal | 比较两个字符串而不考虑本地区域性。返回整数值。 |
String.CompareTo | 将当前字符串对象与另一个字符串进行比较。返回整数值。 |
String.StartsWith | 确定一个字符串是否以传递的字符串开头。返回布尔值。 |
String.EndsWith | 确定一个字符串是否以传递的字符串结尾。返回布尔值。 |
String.Equals | 确定两个字符串是否相同。返回布尔值。 |
String.IndexOf | 返回字符或字符串的索引位置,索引位置从正在检查的字符串的开头开始。返回整数值。 |
String.LastIndexOf | 返回字符或字符串的索引位置,索引位置从正在检查的字符串的结尾开始。返回整数值。 |
Compare
String.Compare 方法提供了将当前字符串对象与另一个字符串或对象进行全面比较的方法。此方法识别区域性。可以使用此函数来比较两个字符串或两个字符串的子串。另外,还提供了考虑或忽略大小写与区域性差异的重载。下表说明了此方法可能返回的三个整数值。值类型 | 条件 |
---|---|
负整数 | strA 小于 strB。 |
0 | strA 等于 strB。 |
正整数 - 或 - 1 | 此实例大于 value。 - 或 - value 是一个空引用(在 Visual Basic 中为 Nothing)。 |
string MyString = "Hello World!"; Console.WriteLine(String.Compare(MyString, "Hello World?"));
此示例将 -1 显示到控制台。
前一个示例默认情况下区分区域性。如要执行不区分区域性的字符串比较,请使用 String.Compare 方法的重载,此方法重载允许通过提供 culture 参数指定要使用的区域性。若要查看演示如何使用 String.Compare 方法执行不区分区域性的比较的示例,请参见执行不区分区域性的字符串比较。
CompareOrdinal
String.CompareOrdinal 方法比较两个字符串对象而不考虑本地区域性。此方法的返回值与前一个表中的 Compare 方法返回的值相同。下面的示例使用 CompareOrdinal 方法来比较两个字符串的值。
string MyString = "Hello World!"; Console.WriteLine(String.CompareOrdinal(MyString, "hello world!"));
此示例将 -32 显示到控制台。
CompareTo
String.CompareTo 方法将当前字符串对象封装的字符串与另一个字符串或对象进行比较。此方法的返回值与前一个表中的 Compare 方法返回的值相同。下面的示例使用 CompareTo 方法将 MyString 对象与 OtherString 对象进行比较。
String MyString = "Hello World"; String OtherString = "Hello World!"; int MyInt = MyString.CompareTo(OtherString); Console.WriteLine( MyInt );
此示例将 1 显示到控制台。
String.CompareTo 方法的所有重载在默认情况下都会执行区分区域性和区分大小写的比较。未提供此方法的允许执行不区分区域性的比较的重载。为了使代码清楚,建议您使用 String.Compare 方法,为区分区域性的操作指定 CultureInfo.CurrentCulture 或为不区分区域性的操作指定 CultureInfo.InvariantCulture。若要查看演示如何使用 String.Compare 方法执行区分区域性和不区分区域性这两种比较的示例,请参见执行不区分区域性的字符串比较。
Equals
String.Equals 方法可以轻易地确定两个字符串是否相同。这个区分大小写的方法返回布尔值 True 或 False。它可以在现有的类中使用,这一点将在下一个示例中阐释。下面的示例使用 Equals 方法来确定一个字符串对象是否包含词组“Hello World”。string MyString = "Hello World"; Console.WriteLine(MyString.Equals("Hello World"));
此示例将 True 显示到控制台。
此方法也可用作静态方法。下面的示例使用静态方法比较两个字符串对象。
string MyString = "Hello World"; string YourString = "Hello World"; Console.WriteLine(String.Equals(MyString, YourString));
此示例将 True 显示到控制台。
StartsWith 和 EndsWith
可以使用 String.StartsWith 方法来确定一个字符串对象是否以构成另一个字符串的同一组字符开始。如果当前字符串对象以传递的字符串开始,则这个区分大小写的方法返回 true,否则返回 false。下面的示例使用此方法来确定一个字符串对象是否以“Hello”开始。string MyString = "Hello World"; Console.WriteLine(MyString.StartsWith("Hello"));
此示例将 True 显示到控制台。
String.EndsWith 方法将传递的字符串与位于当前字符串对象结尾处的字符进行比较。它也返回布尔值。下面的示例使用 EndsWith 方法检查字符串的结尾。
string MyString = "Hello World"; Console.WriteLine(MyString.EndsWith("Hello"));
IndexOf 和 LastIndexOf
可以使用 String.IndexOf 方法来确定特定字符在字符串中第一次出现的位置。这个区分大小写的方法从字符串的开头开始计数,并使用从零开始的索引返回传递的字符的位置。如果无法找到该字符,则返回值 –1。下面的示例使用 IndexOf 方法搜索字符“l”在字符串中第一次出现的位置。
string MyString = "Hello World"; Console.WriteLine(MyString.IndexOf('l'));
此示例将 2 显示到控制台。
String.LastIndexOf 方法类似于 String.IndexOf 方法,不同之处在于它返回特定字符在字符串中最后出现的位置。它区分大小写,并使用从零开始的索引。
下面的示例使用 LastIndexOf 方法来搜索字符“l”在字符串中最后出现的位置。
string MyString = "Hello World"; Console.WriteLine(MyString.LastIndexOf('l'));
此示例将 9 显示到控制台。
当与 String.Remove 方法一起使用时,这两种方法都非常有用。可以使用 IndexOf 或 LastIndexOf 方法来检索字符的位置,然后将该位置提供给 Remove 方法以便移除字符或移除以该字符开头的单词。
相关文章推荐
- C#去除数组重复的元素
- c# wince datatable保存成csv
- C#使用Linq优化查询速度
- C#拾遗-边边角角
- C# 以ThreadStart方式实现多线程
- .net wifi连接的和修改IP等各项操作
- 轻松学习C#的异常处理
- C#基础03
- C# string.Format谨慎使用
- C#时间戳的获取与转换方法
- c#收发数据给USB HID
- C#实现启动,关闭与查找进程的方法
- C#截图操作方法大全
- c#中如何跨线程调用windows窗体控件?
- C#批量入库
- C#中怎样进行调用以及excel连接问题
- C# 通过URL获取图片并显示在PictureBox上的方法
- C# ??符号
- C#开发学习(Visual Studio的安装与使用)
- [原创]C#按比例缩放窗体控件及字体