Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด ToLower() ใน C#

เมธอด String.ToLower() ใน C# ใช้สร้างสำเนาของสตริงที่แปลงเป็นตัวพิมพ์เล็ก (lowercase) ทั้งหมด

ไวยากรณ์ (Syntax)

public string ToLower();
  • คืนค่า string ใหม่ที่เป็นตัวพิมพ์เล็กทั้งหมด
  • ใช้กฎการแปลงของ current culture (วัฒนธรรมปัจจุบันของ thread)
  • มี overload ToLower(CultureInfo) สำหรับระบุ culture เอง

ตัวอย่างที่ 1: แปลงเป็นตัวพิมพ์เล็กพื้นฐาน

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        string str1 = "WELCOME!";
        string str2 = "Thisisit!";

        char[] arr1 = str1.ToCharArray(3, 2);
        char[] arr2 = str2.ToCharArray(2, 2);

        Console.WriteLine("String1 = " + str1);
        Console.WriteLine("String1 ToLower = " + str1.ToLower());
        Console.WriteLine("String1 Substring from index 4 = " + str1.Substring(4, 4));
        Console.Write("Character array... String1 = ");
        for (int i = 0; i < arr1.Length; i++)
            Console.Write(" " + arr1[i]);

        Console.WriteLine("\n\nString2 = " + str2);
        Console.WriteLine("String2 ToLower = " + str2.ToLower());
        Console.WriteLine("String2 Substring from index 2 = " + str2.Substring(0, 5));
        Console.Write("Character array... String2 = ");
        for (int i = 0; i < arr2.Length; i++)
            Console.Write(" " + arr2[i]);
    }
}

ผลลัพธ์

String1 = WELCOME!
String1 ToLower = welcome!
String1 Substring from index 4 = OME!
Character array... String1 = C O
String2 = Thisisit!
String2 ToLower = thisisit!
String2 Substring from index 2 = Thisi
Character array... String2 = i s

ตัวอย่างที่ 2: ใช้ CultureInfo ระบุ (en-US)

using System;
using System.Globalization;

public class Demo
{
    public static void Main(string[] args)
    {
        string str1 = "ABCD!";
        string str2 = "@#$PQRSTUV!";

        Console.WriteLine("String1 = " + str1);
        Console.WriteLine("String1 ToLower = " + str1.ToLower(new CultureInfo("en-US", false)));
        Console.WriteLine("String1 Substring from index 4 = " + str1.Substring(2, 2));

        Console.WriteLine("\n\nString2 = " + str2);
        Console.WriteLine("String2 ToLower = " + str2.ToLower(new CultureInfo("en-US", false)));
        Console.WriteLine("String2 Substring from index 2 = " + str2.Substring(0, 5));
    }
}

ผลลัพธ์

String1 = ABCD!
String1 ToLower = abcd!
String1 Substring from index 4 = CD
String2 = @#$PQRSTUV!
String2 ToLower = @#$pqrstuv!
String2 Substring from index 2 = @#$PQ

สรุป

  • ToLower() คืนสตริงใหม่ — สตริงเดิมไม่เปลี่ยน (immutable)
  • ใช้กฎ current culture — อาจให้ผลต่างกันในบางภาษา (เช่น ตุรกี: 'I' → 'ı' ไม่ใช่ 'i')
  • ใช้ ToLowerInvariant() สำหรับการแปลงที่ไม่ขึ้นกับ culture (เช่น ไฟล์ config, 識別子, protocol)
  • มี overload ToLower(CultureInfo culture) เพื่อระบุ culture เอง
  • ตัวอักษรที่ไม่ใช่ตัวอักษร (ตัวเลข, สัญลักษณ์, whitespace) จะคงเดิม

ToLower vs ToLowerInvariant

เมธอดใช้ Cultureเหมาะสำหรับ
ToLower()CurrentCultureแสดงผลให้ผู้ใช้ (UI, ข้อความ)
ToLower(CultureInfo)Culture ที่ระบุการประมวลผลเฉพาะภาษา/ภูมิภาค
ToLowerInvariant()InvariantCultureInternal processing, identifiers, protocols, file formats