[TIL] 132 [C#] 문자열 문자변환 방법
카테고리: Til
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번
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);
잡담, 일기?
문자열 공부
댓글남기기