次の方法で共有


String.ToLower メソッド (CultureInfo)

指定したカルチャの大文字と小文字の規則を使用して、この String のコピーを小文字で返します。

Overloads Public Function ToLower( _
   ByVal culture As CultureInfo _) As String
[C#]
public string ToLower(CultureInfoculture);
[C++]
public: String* ToLower(CultureInfo* culture);
[JScript]
public function ToLower(
   culture : CultureInfo) : String;

パラメータ

  • culture
    カルチャ固有の大文字と小文字の規則を提供する CultureInfo

戻り値

小文字の String

例外

例外の種類 条件
ArgumentNullException culture が null 参照 (Visual Basic では Nothing) です。

解説

現在有効なカルチャの大文字と小文字の規則によって、文字列の大文字と小文字を変更する方法が決まります。文字列の大文字と小文字が予測できる形で変更されることを前提としたアプリケーションでは、有効なカルチャが突然変更されると、無効な結果が得られる可能性があります。次の検索ルーチンを考えます。検索キーにはテキストの文字列を使用します。比較を簡単にするため、キーは強制的に標準的な大文字/小文字の形式とします。有効なカルチャは、現在のスレッドに対応するカルチャです。

static object LookupKey(string key) { return internalHashtable[key.ToLower()]; }

現在のスレッドや対応するカルチャが突然変わる可能性がある場合は、既定での現在のスレッドのカルチャではなく、インバリアント カルチャを指定することをお勧めします。推奨する方法を次の例に示します。

static object LookupKey(string key) { return internalHashtable[key.ToLower(CultureInfo.InvariantCulture)]; }

使用例

 
' Sample for String.ToLower(CultureInfo)
Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic

Class Sample
   Public Shared Sub Main()
      Dim str1 As [String] = "INDIGO"
      ' str2 = str1, except each 'I' is '\u0130' (Unicode LATIN CAPITAL I WITH DOT ABOVE).
      Dim str2 As New [String](New [Char]() {ChrW(&H0130), "N"c, "D"c, ChrW(&H0130), "G"c, "O"c})
      Dim str3, str4 As [String]

      Console.WriteLine()
      Console.WriteLine("str1 = '{0}'", str1)

      Console.WriteLine()
      Console.WriteLine("str1 is {0} to str2.", _
                         IIf(0 = [String].CompareOrdinal(str1, str2), "equal", "not equal"))
      CodePoints("str1", str1)
      CodePoints("str2", str2)

      Console.WriteLine()
      ' str3 is a lower case copy of str2, using English-United States culture.
      Console.WriteLine("str3 = Lower case copy of str2 using English-United States culture.")
      str3 = str2.ToLower(New CultureInfo("en-US", False))

      ' str4 is a lower case copy of str2, using Turkish-Turkey culture.
      Console.WriteLine("str4 = Lower case copy of str2 using Turkish-Turkey culture.")
      str4 = str2.ToLower(New CultureInfo("tr-TR", False))

      ' Compare the code points in str3 and str4.
      Console.WriteLine()
      Console.WriteLine("str3 is {0} to str4.", _
                         IIf(0 = [String].CompareOrdinal(str3, str4), "equal", "not equal"))
      CodePoints("str3", str3)
      CodePoints("str4", str4)
   End Sub 'Main

   Public Shared Sub CodePoints(title As [String], s As [String])
      Console.Write("{0}The code points in {1} are: {0}", Environment.NewLine, title)
      Dim c As Char
      For Each c In  s
         Console.Write("{0:x4} ", AscW(c))
      Next c
      Console.WriteLine()
   End Sub 'CodePoints
End Class 'Sample
'
'str1 = 'INDIGO'
'
'str1 is not equal to str2.
'
'The code points in str1 are:
'0049 004e 0044 0049 0047 004f
'
'The code points in str2 are:
'0130 004e 0044 0130 0047 004f
'
'str3 = Lower case copy of str2 using English-United States culture.
'str4 = Lower case copy of str2 using Turkish-Turkey culture.
'
'str3 is equal to str4.
'
'The code points in str3 are:
'0069 006e 0064 0069 0067 006f
'
'The code points in str4 are:
'0069 006e 0064 0069 0067 006f

[C#] 
// Sample for String.ToLower(CultureInfo)

using System;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    String str1 = "INDIGO";
    // str2 = str1, except each 'I' is '\u0130' (Unicode LATIN CAPITAL I WITH DOT ABOVE).
    String str2 = new String(new Char[] {'\u0130', 'N', 'D', '\u0130', 'G', 'O'});
    String str3, str4;

    Console.WriteLine();
    Console.WriteLine("str1 = '{0}'", str1);

    Console.WriteLine();
    Console.WriteLine("str1 is {0} to str2.", 
         ((0 == String.CompareOrdinal(str1, str2)) ? "equal" : "not equal"));
    CodePoints("str1", str1);
    CodePoints("str2", str2);

    Console.WriteLine();
    // str3 is a lower case copy of str2, using English-United States culture.
    Console.WriteLine("str3 = Lower case copy of str2 using English-United States culture.");
    str3 = str2.ToLower(new CultureInfo("en-US", false));

    // str4 is a lower case copy of str2, using Turkish-Turkey culture.
    Console.WriteLine("str4 = Lower case copy of str2 using Turkish-Turkey culture.");
    str4 = str2.ToLower(new CultureInfo("tr-TR", false));

    // Compare the code points in str3 and str4.
    Console.WriteLine();
    Console.WriteLine("str3 is {0} to str4.", 
         ((0 == String.CompareOrdinal(str3, str4)) ? "equal" : "not equal"));
    CodePoints("str3", str3);
    CodePoints("str4", str4);
    }

    public static void CodePoints(String title, String s)
    {
    Console.Write("{0}The code points in {1} are: {0}", Environment.NewLine, title);
    foreach (ushort u in s)
      Console.Write("{0:x4} ", u);
    Console.WriteLine();
    }
}
/*
This example produces the following results:

str1 = 'INDIGO'

str1 is not equal to str2.

The code points in str1 are:
0049 004e 0044 0049 0047 004f

The code points in str2 are:
0130 004e 0044 0130 0047 004f

str3 = Lower case copy of str2 using English-United States culture.
str4 = Lower case copy of str2 using Turkish-Turkey culture.

str3 is equal to str4.

The code points in str3 are:
0069 006e 0064 0069 0067 006f

The code points in str4 are:
0069 006e 0064 0069 0067 006f
*/

[C++] 
// Sample for String::ToLower(CultureInfo)

#using <mscorlib.dll>

using namespace System;
using namespace System::Globalization;

void CodePoints(String* title, String* s) {
   Console::Write(S"{0}The code points in {1} are: {0}", Environment::NewLine, title);
   System::Collections::IEnumerator* myEnum = s->GetEnumerator();
   while (myEnum->MoveNext()) {
      UInt16 u = *__try_cast<Char*>(myEnum->Current);
      Console::Write(S"{0:x4} ", __box(u));
   }
   Console::WriteLine();
}
int main() {
   String*  str1 = S"INDIGO";
   // str2 = str1, except each 'I' is '\u0130' (Unicode LATIN CAPITAL I WITH DOT ABOVE).
   Char temp[] = {L'\u0130', L'N', L'D', L'\u0130', L'G', L'O'};
   String* str2 = new String(temp);
   String* str3, *str4;

   Console::WriteLine();
   Console::WriteLine(S"str1 = '{0}'", str1);

   Console::WriteLine();
   Console::WriteLine(S"str1 is {0} to str2.",
      ((0 == String::CompareOrdinal(str1, str2)) ? S"equal" : S"not equal"));
   CodePoints(S"str1", str1);
   CodePoints(S"str2", str2);

   Console::WriteLine();
   // str3 is a lower case copy of str2, using English-United States culture.
   Console::WriteLine(S"str3 = Lower case copy of str2 using English-United States culture.");
   str3 = str2->ToLower(new CultureInfo(S"en-US", false));

   // str4 is a lower case copy of str2, using Turkish-Turkey culture.
   Console::WriteLine(S"str4 = Lower case copy of str2 using Turkish-Turkey culture.");
   str4 = str2->ToLower(new CultureInfo(S"tr-TR", false));

   // Compare the code points in str3 and str4.
   Console::WriteLine();
   Console::WriteLine(S"str3 is {0} to str4.",
      ((0 == String::CompareOrdinal(str3, str4)) ? S"equal" : S"not equal"));
   CodePoints(S"str3", str3);
   CodePoints(S"str4", str4);
}

/*
This example produces the following results:

str1 = 'INDIGO'

str1 is not equal to str2.

The code points in str1 are:
0049 004e 0044 0049 0047 004f

The code points in str2 are:
0130 004e 0044 0130 0047 004f

str3 = Lower case copy of str2 using English-United States culture.
str4 = Lower case copy of str2 using Turkish-Turkey culture.

str3 is equal to str4.

The code points in str3 are:
0069 006e 0064 0069 0067 006f

The code points in str4 are:
0069 006e 0064 0069 0067 006f
*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

String クラス | String メンバ | System 名前空間 | String.ToLower オーバーロードの一覧 | CultureInfo | ToUpper