C# 比較字串或字元是否相等(忽略大小寫)

前言

最近寫著Codeforces或是LeetCode的題目時,很常遇到需要判斷字元(Char)或是字串(String)需要比較是否相等而且需要忽略大小寫的,故記錄下來常見的做法~

解決方法

字串篇 String

方法1 – string.Compare

string.Compare(strA, strB , StringComparison.OrdinalIgnoreCase);

加上了 StringComparison.OrdinalIgnoreCase,就可以讓整個比較變成忽略大小寫了

回傳值則是 0: 兩者忽略大小寫的話字串相等 、 小於0: strA 比 strB 小、大於0: strA 比 strB 大

有使用過的題目範例 : Codeforces 1703A YES or YES? 對或是對?Codeforces 112A Petya 以及字串們

方法2 – 轉成相同大小寫再行比較

bool res1 = strA.ToUpper() == strB.ToUpper();
bool res2 = strA.ToLower() == strB.ToLower();

字元篇 Char

⚠️方法1 – ASCII code

bool res = Math.Abs(charA-charB) == 32 || (charA==charB);

這個辦法是利用到ASCII code中 a 到 Z ,大小寫差異為32的特性

但要注意到,這個做法只適用於輸入範圍已經被限制在英文字母中才比較適合

不然像是,大寫A的十進位為 65,若是沒有限制就比較,那 ! (ASCII 十進位為33) 也會被視為相等的

方法2 – 轉成相同大小寫再進行比較

bool res1 = char.ToUpper(charA) == char.ToUpper(charB);
bool res2 = char.ToLower(charA) == char.ToLower(charB);

結論

紀錄紀錄~

參考資料

🧡希望這篇文章有提供一點幫助~

🧡幫我點一個小小的廣告或留言,都是對我的支持!

⭐如有任何疑問,歡迎透過留言或messenger讓我知道 !

🍽️另外,徵求任何合作機會(不管是業配、廣告或是友站連結)

看看一些其他的筆記吧

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *