Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# ToUpper() 메서드 완벽 가이드 – 문자열을 대문자로 변환하는 방법

C#의 ToUpper() 메서드는 문자열의 모든 문자를 대문자로 변환한 새로운 복사본을 반환합니다. 중요한 점은 원본 문자열은 그대로 유지되며, 변환된 결과가 담긴 새 문자열 객체가 생성된다는 것입니다.

구문(Syntax)

public string ToUpper ();

매개변수 없이 호출하면 현재 스레드의 문화권(CurrentCulture) 규칙에 따라 대소문자 변환이 수행됩니다.

예제 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 ToUpper = "+str1.ToUpper());
      Console.WriteLine("String1 Substring from index4 = " + str1.Substring(4, 4));
      Console.Write("Character array...String1 =");
      for (int i = 0; i < arr1.Length; i++)
      Console.Write(" " + arr1[i]);
      Console.WriteLine("

String2 = "+str2);
      Console.WriteLine("String2 ToUpper = "+str2.ToUpper());
      Console.WriteLine("String2 Substring from index2 = " + str2.Substring(0, 5));
      Console.Write("Character array...String2 =");
      for (int i = 0; i < arr2.Length; i++)
      Console.Write(" " + arr2[i]);
   }
}

실행 결과

String1 = Welcome!
String1 ToUpper = WELCOME!
String1 Substring from index4 = ome!
Character array...String1 = c o
String2 = Thisisit!
String2 ToUpper = THISISIT!
String2 Substring from index2 = Thisi
Character array...String2 = i s

위 결과에서 확인할 수 있듯이, str1.ToUpper()str2.ToUpper()를 호출하자 각각 "WELCOME!"과 "THISISIT!"처럼 모든 알파벳이 대문자로 변환되었습니다. 반면 숫자나 특수문자(!, @, # 등)는 대소문자 구분이 없으므로 그대로 유지됩니다.

예제 2 – CultureInfo를 지정한 ToUpper()

ToUpper() 메서드는 CultureInfo 객체를 매개변수로 받는 오버로드도 제공합니다. 이를 활용하면 특정 문화권의 대소문자 변환 규칙을 명시적으로 적용할 수 있어, 다국어 환경에서 예측 가능한 동작을 보장하는 데 유용합니다.

using System;
using System.Globalization;
public class Demo {
   public static void Main(String[] args) {
      string str1 = "JackSparrow!";
      string str2 = "@#$PQRSTUV!";
      Console.WriteLine("String1 = "+str1);
      Console.WriteLine("String1 ToUpper = "+str1.ToUpper(new CultureInfo("en-US", false)));
      Console.WriteLine("String1 Substring from index4 = " + str1.Substring(2, 2));
      Console.WriteLine("

String2 = "+str2);
      Console.WriteLine("String2 ToUpper = "+str2.ToUpper(new CultureInfo("en-US", false)));
      Console.WriteLine("String2 Substring from index2 = " + str2.Substring(0, 5));
   }
}

실행 결과

String1 = JackSparrow!
String1 ToUpper = JACKSPARROW!
String1 Substring from index4 = ck
String2 = @#$PQRSTUV!
String2 ToUpper = @#$PQRSTUV!
String2 Substring from index2 = @#$PQ

주요 포인트 정리

  • 불변성(Immutability): ToUpper()는 원본 문자열을 수정하지 않고 항상 새 문자열을 반환합니다.
  • 기본 동작: 매개변수 없이 호출하면 현재 문화권(CurrentCulture)의 규칙이 적용됩니다.
  • 문화권 지정: ToUpper(CultureInfo) 오버로드를 사용하면 en-US처럼 특정 문화권의 규칙을 명시적으로 지정할 수 있습니다.
  • 특수문자 처리: 알파벳이 아닌 문자(숫자, 기호 등)는 변환 없이 그대로 반환됩니다.