[英]C# comparing chars from strings
為什么我的代碼只比較第一個字符? 我的錯誤在哪里? 我正在嘗試比較兩個字符串中的字符,並獲得最先出現的字符串,例如“ camera”比“ car”先。 但是如果“ camera”是第二個參數,我的程序會告訴我,car優先。
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;
}
如第一個答案所述,您正在將第一個字符串中的所有字符與第二個字符串中的每個字母進行比較,因此,將其分解就可以說您有這個: var a = "this"; var b = "that";
var a = "this"; var b = "that";
您的比較集看起來像
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;
}
這是全面的字符串比較文檔的鏈接:
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/strings/how-to-compare-strings
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.