[TIL] 132 [C#] 문자열 문자변환 방법

업데이트:

카테고리:

태그: ,


string ToCharArray() StringBuilder string.Substring()



1. ToCharArray()를 사용

✔ ToCharArray()를 사용하여 문자열을 문자 배열로 변환한 후 특정 위치의 문자를 변경
✔ 변경 후 new string(charArray)로 다시 문자열로 변환

string str = "hello";
int index = 1;          // 바꿀 위치
char newChar = 'a';     // 변경할 문자

char[] charArray = str.ToCharArray();   // 문자열을 문자 배열로 변환
charArray[index] = newChar;             // 특정 위치 문자 변경
string newStr = new string(charArray);  // 다시 문자열로 변환

Console.WriteLine(newStr);              //hallo





2. StringBuilder를 사용하여 특정 문자 변경

✔ StringBuilder는 string보다 수정이 가능하므로 직접 변경 가능
✔ 여러 번 수정해야 할 경우 StringBuilder가 char[]보다 성능이 좋음

StringBuilder sb = new StringBuilder("hello");

sb[1] = 'a';                        // 특정 문자 변경
Console.WriteLine(sb.ToString());   //hallo


백준 1032번 문제

백준 1032번

1032번
var sw = new StreamWriter(Console.OpenStandardOutput());
int n = Convert.ToInt32(Console.ReadLine());
string cur = Console.ReadLine();
StringBuilder sb = new StringBuilder(cur);
int len = cur.Length;
for (int i = 0; i < n-1; i++)
{
    string str = Console.ReadLine();
    for (int j = 0; j < len; j++)
    {
        if (sb[j] != str[j])
        {
            sb[j] = '?';
        }
    }
}
sw.WriteLine(sb.ToString());
sw.Flush(); sw.Close();





3. string.Substring()을 사용

✔ Substring()을 사용하여 문자열을 변경된 부분과 나머지 부분으로 나누어 연결
✔ 메모리 할당이 추가로 발생하므로 StringBuilder보다 성능이 떨어질 수 있음

string str = "hello";
int index = 1;      // 바꿀 위치
char newChar = 'a'; // 변경할 문자

string newStr = str.Substring(0, index) + newChar + str.Substring(index + 1);
// h + 'a' + llo = hallo
Console.WriteLine(newStr); 





잡담, 일기?

문자열 공부




📔

댓글남기기