목차:
1. FString 만들기
2. 변환
FString TestHUDString = FString(TEXT("This is my test FString."));
FName TestHUDName = FName(*TestHUDString);
FString TestHUDString = TestHUDName.ToString();
FText TestHUDText = FText::FromString(TestHUDString);
FString TestHUDString = TestHUDName.ToString();
FString TestHUDString = TestHUDText.ToString();
// FString으로 변환
FString FloatAsString = FString::SanitizeFloat(FloatVariable);
FString IntAsString = FString::FromInt(IntVariable);
FString BoolAsString = InBool ? TEXT("true") : TEXT("false");
FString VectorAsString = VectorVariable.ToString();
FString Vector2DAsString = Vector2DVariable.ToString();
FString RotatorAsString = RotatorVariable.ToString();
FString LinearColorAsString = LinearColorVariable.ToString();
FString ObjectName = (InObj != NULL) ? InObj->GetName() : FString(TEXT("None"));
// FString에서 변환
bool BoolValue = TestHUDString.ToBool();
int IntValue = FCString::Atoi(*TestHUDString);
float FloatValue = FCString::Atof(*TestHUDString);
// FString 비교
bool IsEqual = (TestHUDString == AnotherString);
bool IsEqualCaseSensitive = TestHUDString.Equals(AnotherString, ESearchCase::CaseSensitive);
// FString에서 검색
bool ContainsSubstring = TestHUDString.Contains(TEXT("Test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd);
int32 Index = TestHUDString.Find(TEXT("Test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd, 10);
FString ConcatenatedString = String1 + String2;
FString AppendedString = String1;
AppendedString += String2;
FString FormattedString = FString::Printf(TEXT("Value: %d, Name: %s"), IntValue, *Name);
// 서브스트링 조작
FString LeftSubstring = TestHUDString.Left(5);
FString RightSubstring = TestHUDString.Right(5);
FString MidSubstring = TestHUDString.Mid(5, 3);
// 스트링 분할
TArray<FString> Substrings;
TestHUDString.ParseIntoArray(Substrings, TEXT(","), true);
// 대소문자 변환
FString UpperCaseString = TestHUDString.ToUpper();
FString LowerCaseString = TestHUDString.ToLower();
Canvas->DrawText(BigFont, TestHUDString, 110.0f, 110.0f);
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, TestHUDString);
UE_LOG(LogClass, Log, TEXT("This is a testing statement. %s"), *TestHUDString);
// TCHAR -> ANSI
SomeApi(TCHAR_TO_ANSI(SomeUnicodeString));
// ANSI -> TCHAR
FString UnicodeString(ANSI_TO_TCHAR(SomeAnsiString));
생각보다 양이 많은데 포인터와 주소값의 개념을 잘 알고 있으면 이해하기 수월하다.