C#

2024 내일 배움캠프(Unity_6기) _ 사전캠프 6일차(08.20) : C# 문자열 보간 에 대해 알아보자

근본넘치는개발자 2024. 8. 20. 17:45

 

유니티에서 UI로 점수를 보여주는 창을 만들면서 

점수 :  10이라는 걸 보이기 위해

"점수 :" 라고 적힌  Text와

숫자가 적힌 텍스트 두 개를 만들어서 사용하곤 했습니다. 

 

하나의 Text에 값을 더하는 걸로 충분히 만들 수 있지 않을까 찾다가

문자열 보간을 활용하면 간단하게 만들 수 있다는 걸 알게 되었고 공유하고자 합니다. 

사용 방법은 다음과 같습니다.

먼저 " " 앞에 $를 붙이고, 변수를 넣고자 하는 곳에 {}를 친 후 변수를 넣으면 됩니다.

 

예시입니다.

 float nowTime = 0.5f;
 int bestTime = 2;
 BestRecord.text = $"최고 점수 : {bestTime} 현재 점수 : {nowTime}";

 

 

 

 원래라면 
 "현재 점수 : " + nowTime.ToString() + " 최고 점수" + bestTime.ToString();

이런 식으로 +를 통해 내용이 추가될 때마다 문자열의 형태로 변환해 붙여가며 만들어야 했지만

문자열 보간을 활용하면 Text 중간에 원하는 변수 값을 그대로 넣어 보기 쉽게 만들 수 있습니다. 

 

 

또한 문자열 보간을 사용하면

메모리 측면에서의 이점도 챙길 수 있다는 장점이 있습니다.

 

문자열 개체는 만든 후  변경할 수 없는 특징을 가집니다. 

 

설명을 위한 예시입니다. (마이크로소프트 공식 문서에서 가져왔습니다)

string s1 = "A string is more ";
string s2 = "than the sum of its chars.";

// Concatenate s1 and s2. This actually creates a new
// string object and stores it in s1, releasing the
// reference to the original object.
s1 += s2;

System.Console.WriteLine(s1);
// Output: A string is more than the sum of its chars.

 

s1과 s2를 더하면 더한 값 (- s3라고 임의로 이름 붙이겠습니다.) 외에도 s1과 s2가 메모리에 남아있습니다.

String을 짧은 시간 동안 (반복문을 활용하여 한 단어씩 출력되도록 만드는 경우 등)

계속 더해가며 표현하는 경우 성능이 크게 저하가 될 수 있습니다. 

 

 

StringBuilder를 사용해서 위의 문제점을 해결하는 방법도 있다고 하여
다음엔 StringBuilder의 사용법에 대해 알아보고 포스팅해 보도록 하겠습니다. 

 

 

잘못된 정보나 오류에 대해 지적할 사항이 있다면 댓글로 남겨주세요. 언제든 환영입니다.