C#/문자열

[C#]문자열 대소문자 변환 방법

DevStory 2022. 8. 16.

문자열 대소문자 변환 방법

C#에서 문자열을 대문자 또는 소문자로 변환해야 하는 경우가 존재합니다.

 

string 클래스에서 제공하는 ToUpper() 메서드와 ToLower() 메서드를 사용하면, 문자열을 대소문자로 쉽게 변환할 수 있지만 다음 상황에서는 문자열을 대소문자로 변환하기 전에 몇 가지 작업이 필요합니다.

- 특정 문자열을 대소문자로 변환

- 문자열의 첫 글자만 대문자로 변환

- 대문자는 소문자로, 소문자는 대문자로 변환

 

이번 포스팅은 string 클래스에서 제공하는 ToUpper() 메서드와 ToLower() 메서드를 사용하여 문자열을 대소문자로 변환하는 다양한 방법들을 소개합니다.


방법 1. 문자열을 대문자로 변환하는 방법

C#에서 모든 문자열을 대문자로 변환하는 가장 간단한 방법은 string 클래스의 ToUpper() 메서드를 사용하는 것입니다.

 

ToUpper() 메서드는 대문자로 변경된 새로운 문자열을 반환합니다.

 

다음 예제는 문자열 "Hello"를 대문자로 변환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "Hello";
    string upperResult = strValue.ToUpper();

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("upperResult: " + upperResult);
  }
}

[실행 결과]

strValue: Hello
upperResult: HELLO

방법 2. 문자열을 소문자로 변환하는 방법

마찬가지로, string 클래스는 모든 문자열을 소문자로 변환하는 메서드를 제공합니다.

 

바로 ToLower() 메서드입니다.

 

ToLower() 메서드는 소문자로 변경된 새로운 문자열을 반환합니다.

 

다음 예제는 문자열 "HELLO"를 소문자로 변환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "Hello";
    string lowerResult = strValue.ToLower();

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("lowerResult: " + lowerResult);
  }
}

[실행 결과]

strValue: Hello
lowerResult: hello

방법 3. 특정 문자열을 대소문자로 변환하는 방법

특정 문자열을 대소문자로 변환하고 싶은 경우 Replace() 메서드와 ToUpper() 및 ToLower() 메서드를 조합하여 사용합니다.

 

다음 예제는 문자열 "HELLO Java"에서 "Java"를 대문자로 변환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "HELLO Java";
    string replaceResult = strValue.Replace("Java", "Java".ToUpper());

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("replaceResult: " + replaceResult);
  }
}

[실행 결과]

strValue: Hello Java
replaceResult: Hello JAVA

이번에는 문자열 "HELLO Java"에서 "HELLO"를 소문자로 변환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "HELLO Java";
    string replaceResult = strValue.Replace("HELLO", "HELLO".ToLower());

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("replaceResult: " + replaceResult);
  }
}

[실행 결과]

strValue: HELLO Java
replaceResult: hello Java

방법 4. 문자열의 첫 글자만 대문자로 변환하는 방법

문자열의 첫 글자만 대문자로 변환하고 싶은 경우 TextInfo 클래스의 ToTitleCase() 메서드를 사용합니다.

 

TextInfo 클래스를 사용하기 위해 다음 네임스페이스를 추가합니다.

using System.Globalization;

다음 예제는 문자열 "hello"에서 첫 글자만 대문자로 변환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "hello";

    TextInfo ti = CultureInfo.CurrentCulture.TextInfo;

    string ToTitleCaseResult = ti.ToTitleCase(strValue);

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("ToTitleCaseResult: " + ToTitleCaseResult);
  }
}

[실행 결과]

strValue: hello
ToTitleCaseResult: Hello

방법 5. 대문자는 소문자로, 소문자는 대문자로 변환하는 방법

대문자는 소문자로, 소문자는 대문자로 반전해야 하는 경우 LINQ의 Select() 메서드와 Char 클래스에서 제공하는 ToUpper() 메서드와 ToLower() 메서드를 사용합니다.

 

LINQ의 Select() 메서드를 사용하기 위해 다음 네임스페이스를 추가합니다.

using System.Linq;

Select() 메서드는 IEnumerable<TResult>를 반환합니다.

 

따라서, Select() 메서드의 반환 결과를 ToArray() 메서드를 사용하여 배열로 변환 후 String() 생성자로 배열을 문자열로 변환합니다.

 

다음 예제는 문자열 "hELLO jAVA"의 대소문자가 반전된 결과를 반환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "hELLO jAVA";

    var selectResult = strValue.Select(c => char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c));
    string invertedResult = new String(selectResult.ToArray());

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("invertedResult: " + invertedResult);
  }
}

[실행 결과]

strValue: hELLO jAVA
invertedResult: Hello Java

LINQ의 Select() 메서드 사용 방법이 어렵다면, 반복문을 사용하여 대소문자를 반전시킬 수 있습니다.

 

다음 예제는 반복문을 사용하여 문자열 "hELLO jAVA"의 대소문자가 반전된 결과를 반환합니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue = "hELLO jAVA";
    string invertedResult = string.Empty;

    foreach (char c in strValue)
    {
      invertedResult += char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c);
    }

    Console.WriteLine("strValue: " + strValue);
    Console.WriteLine("invertedResult: " + invertedResult);
  }
}

[실행 결과]

strValue: hELLO jAVA
invertedResult: Hello Java
반응형

댓글