C#中String的静态方法Compare(str1,str2)比较字符串大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中String的静态方法Compare(str1,str2)比较字符串大小相关的知识,希望对你有一定的参考价值。

C#中String的静态方法Compare(str1,str2)比较字符串大小是按什么规则进行比较的,如字符串"a"和"A",结果是"a"<"A",它们是按什么进行比较的?

默认使用的排序准则是CurrentCulture。这是一个对程序员来说比较奇怪的顺序,但它代表的是自然语言的顺序,而且结果是和当前系统的区域和语言选项设置相关的。对字母顺序来说,在大多数culture中,顺序大致是aAbBcC...
实验一下Compare("A","b"), Compare("b","B")就知道了
使用带有排序选项的重载并指定Ordinal,可以获得和C、C++之类的排序函数相同的结果。它实际上是用Unicode字符的编码来进行排序。
Compare("a","A",StringComparison.Ordinal)返回32,即"a">"A"。
Compare("a","B",StringComparison.Ordinal)返回31,即"a">"B"。
这对于程序员来说大约是比较熟悉的结果。
参考技术A 字符串占用的长度 单独字符按AscII码 参考技术B 按照asc码的大小A在小写的后面,顺序是先小写到w,再大写的W 参考技术C a-zA-Z 参考技术D compareTo方法是将两个字符串进行每个字符的Ascii码比较,发现不同时返回str1相对位置减去str2相对位置的字符的值,照你的题目,两个字符串的第一处不同出现在第一位,也就是g和G,g的ascii码为103,G的ascii码为71,所以,返回值为103-71=32,如果你用str2.compareTo(str1),则返回的是-32
第5个回答  2011-08-26 import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Test
public static void main(String[] args) throws IOException
Scanner in = new Scanner(System.in);
String str1 = in.next();
String str2 = in.next();
String max = str1;
if (str1.length() < str2.length())
max = str2;
else if (str1.length() > str2.length())
max = str1;
else if (str1.compareTo(str2) < 0)
max = str2;

System.out.println(max);
FileWriter fw = new FileWriter("hello.txt");
fw.write(max + "\n");
fw.close();


以上是关于C#中String的静态方法Compare(str1,str2)比较字符串大小的主要内容,如果未能解决你的问题,请参考以下文章

C#字符串比较方法Compare()

C#判断两个字符串是否相等的方法 ,还有char赋空值办法。

Java compare方法和compareTo方法

字符串比较方法:“==”操作符;RefernceEquals;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。

C# CompareTo 和 String.Compare

C#比较字符串及字符串常用函数