반응형
우리는 C#에서 코딩을 할때, 문자를 조합해야할 일이 생긴다.
일반적인 사용법
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CodePractice : MonoBehaviour
{
public string mString = "Taek";
public string bString = "blog";
// Start is called before the first frame update
void Start()
{
Debug.Log(PracticeStringBuilder());
Debug.Log(mString + bString);
}
public string PracticeStringBuilder()
{
string fusion = mString + bString;
return fusion;
}
}
이렇게 + 연산자를 사용하여 String 두개를 합쳐주는 형태로 진행한다.
- 이러한 형태는 인스턴스를 생성하게 되며 가비지 콜랙터에서 오버헤드를 일으키는 치명적인 요소로 자리 잡고 있습니다.
이를 해결하기위해 Stringbuilder를 사용하는데요.
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
public class CodePractice : MonoBehaviour
{
public string mString = "Taek";
public string bString = "blog";
// Start is called before the first frame update
void Start()
{
PracticeStringBuilder();
}
public void PracticeStringBuilder()
{
StringBuilder str = new StringBuilder();
str.Append(mString);
str.Append(bString);
Debug.Log(str.ToString());
}
}
캡슐화되는 문자열에서 문자 수를 확장할 수 있는 동적 개체이지만, 보관할 수 있는 최대 문자 수 값을 지정할 수 있습니다.
사용법에 대한 내용을 코드로 정리한 예제 이다.
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
public class CodePractice : MonoBehaviour
{
public string mString = "Taek";
public string bString = "blog";
// Start is called before the first frame update
void Start()
{
PracticeStringAppend();
StringBuilderInsert();
RemoveString();
ReplaceString();
}
public void PracticeStringAppend()
{
// 요소 끝에 String 배열을 추가
StringBuilder str = new StringBuilder();
str.Append(mString);
str.Append(bString);
Debug.Log(str.ToString());
}
public void StringBuilderInsert()
{
// 선택한 자리에 다른 String 요소를 집어 넣는다.
StringBuilder istr = new StringBuilder(mString);
istr.Insert(1, "aaaaaa");
Debug.Log(istr.ToString());
}
public void RemoveString()
{
//특정 지점에서 길이만큼 삭제한다.
StringBuilder rstr = new StringBuilder(bString);
rstr.Remove(1, 2);
Debug.Log(rstr.ToString());
}
public void ReplaceString()
{
//특정 char 요소를 변경한다.
StringBuilder restr = new StringBuilder(mString);
restr.Replace('T', 'B');
Debug.Log(restr.ToString());
}
}
결과
728x90
반응형
'Unity > C#' 카테고리의 다른 글
[C#] 제네릭 (0) | 2023.05.15 |
---|---|
[C#] 박싱 과 언박싱 (boxing & unboxing) (0) | 2023.02.20 |
[C#] DateTime (6) | 2022.08.22 |
[Unity/C#] C# 코딩 규칙 (0) | 2022.08.21 |
[C#] Byte[] 바이트 배열 string 변환 (0) | 2022.08.21 |