C#比较字符串中的字符
为什么我的代码只比较第一个字符? 我的错误在哪里? 我试着比较两个字符串中的字符,得到像“相机”比“汽车”先出现的字符串。但如果“摄像头”是第二个参数,我的程序告诉我,汽车是第一位的C#比较字符串中的字符,c#,string,char,C#,String,Char,为什么我的代码只比较第一个字符? 我的错误在哪里? 我试着比较两个字符串中的字符,得到像“相机”比“汽车”先出现的字符串。但如果“摄像头”是第二个参数,我的程序告诉我,汽车是第一位的 static string CompareChars(string a, string b) { foreach (char aa in a) { foreach (char bb in b) {
static string CompareChars(string a, string b)
{
foreach (char aa in a)
{
foreach (char bb in b)
{
if (aa > bb)
return a;
}
}
return b;
}
您正在将
a
的第一个字母与b
中的所有字母进行比较,而不是将a
的第一个字母与b
中的第一个字母进行比较,然后移动到两个字符串的第二个字母
您可能需要一个for
循环+索引到两个字符串中
也可以使用内置的比较功能:
static string CompareString(string a, string b)
{
return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}
您正在将a
的第一个字母与b
中的所有字母进行比较,而不是将a
的第一个字母与b
中的第一个字母进行比较,然后继续两个字符串的第二个字母
您可能需要一个for
循环+索引到两个字符串中
也可以使用内置的比较功能:
static string CompareString(string a, string b)
{
return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}
如第一个答案所述,您正在将第一个字符串中的所有字符与第二个字符串中的每个字母进行比较,因此,将其分解为:
var a=“this”;
var b=“该”;
您的比较集看起来像
if('t'>'t')
if('t'>'h')
if('t'>'a')
if('t'>'t')
if('h'>'t')
if('h'>'h')
if('h'>'a')
if('h'>'t')
等等
如前所述,您可以使用
static string CompareString(string a, string b)
{
return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}
以下是指向综合字符串比较文档的链接:
希望这有帮助正如第一个答案中所述,您正在将第一个字符串中的所有字符与第二个字符串中的每个字母进行比较,因此,将其分解为:
var a=“this”;
var b=“该”;
您的比较集看起来像
if('t'>'t')
if('t'>'h')
if('t'>'a')
if('t'>'t')
if('h'>'t')
if('h'>'h')
if('h'>'a')
if('h'>'t')
等等
如前所述,您可以使用
static string CompareString(string a, string b)
{
return a.CompareTo(b) < 0 ? a : b;
}
静态字符串比较(字符串a、字符串b)
{
返回a.CompareTo(b)<0?a:b;
}
以下是指向综合字符串比较文档的链接:
希望这有帮助哇,太不可思议了。谢谢你,马辛。哇,难以置信。谢谢Marcin。指尖上的调试器是一种很好的方法,可以帮助您自己解决这类问题……并了解更多有关代码实际执行方式的信息。指尖上的调试器是一种很好的方法,可以帮助您自己解决这类问题……并了解更多有关代码实际执行方式的信息。