3

substring と IndexOf を使用して文字列内の値を検索していますが、以下の文字列 (strOldValue) に大文字と小文字が異なる文字列が含まれていると、コードが機能しません。したがって、strOldValue に Test または TEST が含まれている場合、部分文字列は失敗します。このシナリオで ToUpper を追加するにはどうすればよいですか? 私の無知を許してください.Netは初めてです。

String strValue = strOldValue.Substring(strOldValue.IndexOf(@"test"));

ありがとうC

4

5 に答える 5

16

ToUpper を使用すると、次のようになります。

String strValue = strOldValue.Substring(
                    strOldValue.ToUpper().IndexOf(@"TEST"));

ただし、比較で大文字と小文字を区別しないように指定するのが最も簡単です。

String strValue = strOldValue.Substring(strOldValue.IndexOf(@"TEST",
          StringComparison.CurrentCultureIgnoreCase));

IndexOfメソッドの 2 番目のcomparisonTypeパラメーターは、value パラメーターの検索方法を指定します。現在のカルチャまたはインバリアント カルチャを使用するか、大文字と小文字を区別する検索または大文字と小文字を区別しない検索を使用するか、単語または序数の比較規則を使用します ( http://msdn.完全なドキュメントについては、microsoft.com/en-us/library/ms224425.aspxを参照してください)。

于 2009-01-14T00:29:24.893 に答える
3
String strValue 
    = strOldValue.Substring(strOldValue.ToUpper().IndexOf(@"TEST"));

注: 質問に直接答えています (「このシナリオで ToUpper を追加するにはどうすればよいですか?」)。

これは、大文字と小文字を区別しない部分文字列をコーディングする方法ではありません。

divo/TheSoftwareJedi による回答は明らかに優れています。

于 2009-01-14T00:28:14.380 に答える
1
strValue.Substring(strValue.IndexOf("TEST", StringComparison.OrdinalIgnoreCase));
于 2009-01-14T00:31:23.453 に答える
0

正規表現のファンとして、次のコードを使用します。

String strValue = new Regex("test.*",
       RegexOptions.IgnoreCase).Match(strOldValue).Value;
于 2009-01-14T00:43:05.443 に答える