.NET 文字列関数はIndexOf("blah")
大文字と小文字を区別しますか?
私が覚えている限りではそうではありませんが、何らかの理由で、クエリ文字列のテキストがキャメルケース (UserID など) であるアプリにバグがあり、IndexOf("userid")
.
.NET 文字列関数はIndexOf("blah")
大文字と小文字を区別しますか?
私が覚えている限りではそうではありませんが、何らかの理由で、クエリ文字列のテキストがキャメルケース (UserID など) であるアプリにバグがあり、IndexOf("userid")
.
はい、文字列関数はデフォルトで大文字と小文字が区別されます。通常、必要な文字列比較の種類を示すことができるオーバーロードがあります。これは IndexOf にも当てはまります。大文字と小文字を区別しない方法で文字列のインデックスを取得するには、次のようにします。
string blaBlah = "blaBlah";
int idx = blaBlah.IndexOf("blah", StringComparison.OrdinalIgnoreCase);
既存の回答に追加したいことが1つあります(最初はASP.NETについて質問していたため):
Request.QueryString やおそらく Request.Form などの一部の名前/値コレクションでは、大文字と小文字が区別されません。たとえば、次の URL を使用して ASPX ページに移動するとします。
http://server/mypage.aspx?user=admin
次に、次の両方の行が「admin」を返します。
var user1 = Request.QueryString["user"];
var user2 = Request.QueryString["USER"];
.NET 文字列の比較では、大文字と小文字が区別されます。ToUpper() などを使用して、比較する前に正規化できます。
デフォルトでは大文字と小文字が区別されますが、IndexOf を含むほとんど (すべてではないにしても) には、StringComparison 引数を取るオーバーロードがあります。たとえば、あなたが合格した場合
StringComparison.InvariantCultureIgnoreCase
IndexOf への StringComparison 引数として、(名前が示すように) 大文字と小文字の違いを無視します