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();
}
那这段代码,怎么写能按照输入的英文名字,升序排列呢? 展开
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();
}
那这段代码,怎么写能按照输入的英文名字,升序排列呢? 展开
2个回答
展开全部
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:你补充的代码没有问题,可以实现你要的功能
PS:你补充的代码没有问题,可以实现你要的功能
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询