문자열 대소문자 변환 방법
C#에서 문자열을 대문자 또는 소문자로 변환해야 하는 경우가 존재합니다.
string 클래스에서 제공하는 ToUpper() 메서드와 ToLower() 메서드를 사용하면, 문자열을 대소문자로 쉽게 변환할 수 있지만 다음 상황에서는 문자열을 대소문자로 변환하기 전에 몇 가지 작업이 필요합니다.
- 특정 문자열을 대소문자로 변환
- 문자열의 첫 글자만 대문자로 변환
- 대문자는 소문자로, 소문자는 대문자로 변환
이번 포스팅은 string 클래스에서 제공하는 ToUpper() 메서드와 ToLower() 메서드를 사용하여 문자열을 대소문자로 변환하는 다양한 방법들을 소개합니다.
방법 1. 문자열을 대문자로 변환하는 방법
C#에서 모든 문자열을 대문자로 변환하는 가장 간단한 방법은 string 클래스의 ToUpper() 메서드를 사용하는 것입니다.
ToUpper() 메서드는 대문자로 변경된 새로운 문자열을 반환합니다.
다음 예제는 문자열 "Hello"를 대문자로 변환합니다.
using System;
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"를 소문자로 변환합니다.
using System;
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 Program Language"에서 "Program"를 대문자로 변환합니다.
using System;
class Program
{
static void Main(string[] args)
{
string strValue = "HELLO Program Language";
string replaceResult = strValue.Replace("Program", "Program".ToUpper());
Console.WriteLine("strValue: " + strValue);
Console.WriteLine("replaceResult: " + replaceResult);
}
}
실행 결과
strValue: HELLO Program Language
replaceResult: HELLO PROGRAM Language
이번에는 문자열 "HELLO Program Language"에서 "HELLO"를 소문자로 변환합니다.
using System;
class Program
{
static void Main(string[] args)
{
string strValue = "HELLO Program Language";
string replaceResult = strValue.Replace("HELLO", "HELLO".ToLower());
Console.WriteLine("strValue: " + strValue);
Console.WriteLine("replaceResult: " + replaceResult);
}
}
실행 결과
strValue: HELLO Program Language
replaceResult: hello Program Language
방법 4. 문자열의 첫 글자만 대문자로 변환하는 방법
문자열의 첫 글자만 대문자로 변환하고 싶은 경우 TextInfo 클래스의 ToTitleCase() 메서드를 사용합니다.
다음 예제는 문자열 "hello"에서 첫 글자만 대문자로 변환합니다.
using System;
using System.Globalization;
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() 메서드를 사용합니다.
Select() 메서드는 IEnumerable<TResult>를 반환합니다.
따라서, Select() 메서드의 반환 결과를 ToArray() 메서드를 사용하여 배열로 변환 후 String() 생성자로 배열을 문자열로 변환합니다.
다음 예제는 문자열 "hELLO pROGRAM lANGUAGE"의 대소문자가 반전된 결과를 반환합니다.
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
string strValue = "hELLO pROGRAM lANGUAGE";
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 pROGRAM lANGUAGE
invertedResult: Hello Program Language
LINQ의 Select() 메서드 사용 방법이 어렵다면, 반복문을 사용하여 대소문자를 반전시킬 수 있습니다.
다음 예제는 반복문을 사용하여 문자열 "hELLO pROGRAM lANGUAGE"의 대소문자가 반전된 결과를 반환합니다.
using System;
class Program
{
static void Main(string[] args)
{
string strValue = "hELLO pROGRAM lANGUAGE";
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 pROGRAM lANGUAGE
invertedResult: Hello Program Language
C# 문자열 함수에서 대소문변환하는 케이스에 대해서 잘 정리된 내용이라서 재 배포해 봅니다.
출처: https://developer-talk.tistory.com/669 [DevStory:티스토리]