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

C# String.ToUpperInvariant() 메서드 – 문자열을 대문자로 변환하는 방법

C#의 String.ToUpperInvariant() 메서드는 불변 문화권(Invariant Culture)의 대소문자 규칙을 적용하여 문자열 객체를 대문자로 변환한 새로운 복사본을 반환합니다.

이 메서드는 시스템 언어 설정이나 지역 문화권과 무관하게 항상 동일한 결과를 보장하므로, 파일 경로 비교나 내부 식별자 처리처럼 일관성이 중요한 코드에서 특히 유용합니다.

구문

메서드의 기본 구문은 다음과 같습니다.

public string ToUpperInvariant();

예제 1

다양한 형태의 문자열에 ToUpperInvariant() 메서드를 적용해 보겠습니다.

using System;
using System.Text;

public class Demo {
   public static void Main(String[] args) {
      string str1 = "one";
      string str2 = "TWO";
      string str3 = "ThrEE";

      Console.WriteLine("String 1 = " + str1);
      Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());

      Console.WriteLine("String 2 = " + str2);
      Console.WriteLine("String2 ToUpperInvariant = " + str2.ToUpperInvariant());

      Console.WriteLine("String 3 = " + str3);
      Console.WriteLine("String3 ToUpperInvariant = " + str3.ToUpperInvariant());
   }
}

출력 결과

String 1 = one
String1 ToUpperInvariant = ONE
String 2 = TWO
String2 ToUpperInvariant = TWO
String 3 = ThrEE
String3 ToUpperInvariant = THREE

위 실행 결과에서 알 수 있듯이, 이미 모두 대문자인 문자열은 그대로 반환되며, 대소문자가 섞여 있는 문자열은 전부 대문자로 변환됩니다.

예제 2

소문자와 대문자 문자열을 각각 변환하는 또 다른 예제입니다.

using System;

public class Demo {
   public static void Main(String[] args) {
      string str1 = "abcd";
      string str2 = "PQRS";

      Console.WriteLine("String 1 = " + str1);
      Console.WriteLine("String1 ToUpperInvariant = " + str1.ToUpperInvariant());

      Console.WriteLine("String 2 = " + str2);
      Console.WriteLine("String2 ToUpperInvariant = " + str2.ToUpperInvariant());
   }
}

출력 결과

String 1 = abcd
String1 ToUpperInvariant = ABCD
String 2 = PQRS
String2 ToUpperInvariant = PQRS

ToUpperCase와의 차이점

C#에는 유사한 기능을 하는 ToUpper() 메서드도 있습니다. 두 메서드의 주요 차이는 다음과 같습니다.

  • ToUpper(): 현재 스레드의 문화권(Current Culture) 규칙을 따릅니다. 실행 환경의 언어 설정에 따라 결과가 달라질 수 있습니다.
  • ToUpperInvariant(): 문화권에 영향을 받지 않는 고정된 규칙을 적용합니다. 어떤 환경에서 실행되더라도 항상 동일한 결과를 반환합니다.

따라서 사용자에게 표시할 텍스트는 ToUpper()를, 데이터 비교·저장 등 시스템 내부 로직에는 ToUpperInvariant()를 사용하는 것이 권장됩니다.