C#/문자열

[C#]Char 배열을 문자열로 변환하는 방법

DevStory 2022. 8. 17.

Char 배열을 문자열로 변환하는 방법

C#에서 문자열(String)은 Char 배열로 구성되어 있습니다.

 

하지만, Char 배열은 문자열이 아닙니다.

 

Char 배열과 String은 엄연히 다른 클래스이므로 제공되는 메서드와 사용할 수 있는 연산자도 다릅니다.

 

예를 들어, 문자열은 + 연산자를 문자열을 연결할 수 있습니다.

class Program
{
  static void Main(string[] args)
  {
    string strValue1 = "He";
    string strValue2 = "llo";

    Console.WriteLine(strValue1 + strValue2);
  }
}

[실행 결과]

Hello

Char 배열을 + 연산자로 연결하면, 컴파일 에러가 발생합니다.

class Program
{
  static void Main(string[] args)
  {
    char[] charArray1 = { 'H', 'e' };
    char[] charArray2 = { 'l', 'l', 'o' };

    Console.WriteLine(charArray1 + charArray2);
  }
}

[에러 내용]

따라서, Char 배열을 문자열처럼 사용하기 위해서는 문자열로 변환하는 작업이 필요합니다.

 

이번 포스팅은 C#에서 Char 배열을 문자열로 변환하는 몇 가지 방법들을 소개합니다.


방법 1. String 생성자

첫 번째 방법으로 string 생성자 함수에 Char 배열을 전달합니다.

 

string 생성자 함수는 여러 오버로드된 형태가 존재하며, Char 배열을 문자열로 반환합니다.

class Program
{
  static void Main(string[] args)
  {
    char[] charArray = { 'H', 'e', 'l', 'l', 'o' };
    string strValue = new string(charArray);

    Console.WriteLine(strValue);
  }
}

[실행 결과]

Hello

방법 2. Join 메서드

두 번째 방법으로 string 클래스에서 제공하는 Join() 메서드를 사용합니다.

 

Join() 메서드는 Char 배열을 매개변수로 가지는 오버로드된 형태가 존재하며, 구분 기호를 빈 값으로 설정하여 새로운 문자열을 생성할 수 있습니다.

class Program
{
  static void Main(string[] args)
  {
    char[] charArray = { 'H', 'e', 'l', 'l', 'o' };
    string strValue = string.Join("", charArray);

    Console.WriteLine(strValue);
  }
}

[실행 결과]

Hello

방법 3. Concat 메서드

세 번째 방법으로 string 클래스에서 제공하는 Concat() 메서드를 사용합니다.

 

Concat() 메서드는 Char 배열을 매개변수로 가지는 오버로드된 형태가 존재하며, Char 배열의 요소를 연결하여 새로운 문자열을 생성합니다.

class Program
{
  static void Main(string[] args)
  {
    char[] charArray = { 'H', 'e', 'l', 'l', 'o' };
    string strValue = string.Concat(charArray);

    Console.WriteLine(strValue);
  }
}

[실행 결과]

Hello

방법 4. StringBuilder 클래스

마지막 방법으로 StringBuilder 클래스를 사용하여 Char 배열을 문자열로 변환합니다.

 

Char 배열을 순회하여 StringBuilder 객체에 각 문자를 추가합니다.

 

StringBuilder 객체에 모든 문자를 추가했으면, ToString() 메서드를 호출하여 문자열로 변환합니다.

class Program
{
  static void Main(string[] args)
  {
    char[] charArray = { 'H', 'e', 'l', 'l', 'o' };
    StringBuilder sb = new StringBuilder();

    foreach (char value in charArray)
    {
      sb.Append(value);
    }

    string strValue = sb.ToString();

    Console.WriteLine(strValue);
  }
}

[실행 결과]

Hello
반응형

댓글