C#Compare()方法这个怎么理解?

string[]str=newstring[2];str[0]="Admin";str[1]="Ling";//中间部分省略了...intcmd=str[0].Compa... string[] str=new string[2];
str[0]="Admin";
str[1]="Ling";
//中间部分省略了...
int cmd = str[0].CompareTo(str[1]);

为什么cmd会返回-1,返回小于0的数,

我想问的是,str[0].CompareTo(str[1]);这句话,是str[0]和str[1]比较str[0]大于str[1]吗?还是怎么理解啊?
static void Main(string[] args)
{
string[] str=new string[2];

Console.WriteLine("输入学员的名字:");
for (int i = 0; i < str.Length; i++)
{
str[i] = Console.ReadLine();
}

for(int i=0;i<str.Length-1;i++)
{

for (int j = 0; j < str.Length - 1-i; j++)
{
int cmd = str[j].CompareTo(str[j + 1]);
if (cmd > 0)
{
string temp;
temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}

}

for (int i = 0; i < str.Length; i++)
{
Console.WriteLine(str[i]);
}
Console.ReadLine();
}

那这段代码,怎么写能按照输入的英文名字,升序排列呢?
展开
 我来答
百度网友6809e30a0
2009-03-11 · TA获得超过5285个赞
知道大有可为答主
回答量:3765
采纳率:0%
帮助的人:2845万
展开全部
String.Compare函数就是比较两个字符串,逐个比较每个字符的ASCII码值,如果当前对应的A串中的字符小于B串,那么代表A串小于B串,返回-1,否则A串大于B串,返回1,如果比较完毕后全部都相等,那么则认为A串与B串相等,返回0,如字符串"shell"与"shall",比较第一个字符s,两者都相等,那么看第二个h,也都相等,看第三个,e的ASCII码大于a,那么判断shell大于shall,返回1

PS:你补充的代码没有问题,可以实现你要的功能
2009qianqian
2009-03-11 · TA获得超过381个赞
知道答主
回答量:164
采纳率:0%
帮助的人:41.6万
展开全部
不是的,str[0]比str[1]小,所以返回值为-1;
两个字符串的比较,从第一个字符向后依次比较,比较字符的ASII码~~~
比如Str a,b;
a.compareTo(b)就是用b来和a比较:
a>b返回1;
a<b返回-1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式