시작하며
언리얼 엔진에서 문자열을 다루어야할 경우가 종종 발생한다. 그 중 자주 쓰는 문자열 나누기와 공백(스페이스) 제거하는 방법을 기록하고자 한다.
문자열 나누기
파일의 경로에서 폴더명이나 파일명을 구하는 상황등에서 문자열을 특정 단어로 나누어야 할때가 있다. C++에서는 strtok 함수를 통해서 문자열을 나눴었는데, 언리얼 엔진에서는 ParseIntoArray 함수로 나눌수 있다.
FString AssetPath = TEXT("Project/Content/Game//UI/HUD/HUD_Main.uasset");
TArray<FString> Paths;
AssetPath.ParseIntoArray(Paths, TEXT("/"));
for (FString& Element : Paths)
{
UE_LOG(LogClass, Warning, TEXT("Path : [%s]"), *Element);
}
AssetPath = TEXT("Project/Content/Game//UI/HUD/HUD_Main.uasset");
AssetPath.ParseIntoArray(Paths, TEXT("/"), false);
for (FString& Element : Paths)
{
UE_LOG(LogClass, Warning, TEXT("Path No Cull : [%s]"), *Element);
}
3번째 파라미터인 InCullEmpty 를 false로 하면 empty 스트링도 배열에 담기는 것을 확인할 수 있다.
스페이스 없애기
실무에서 문자열의 공백을 제거해야할 상황이 있었다. 이 때 FString의 RemoveSpaceInline 함수를 사용하여 문자열에 포함된 공백을 지울 수 있다.
FString Message = TEXT("Hello my name is tedison");
Message.RemoveSpacesInline();
// Message = "Hellomynameistedison"
마치며
ParseIntoArray은 문자열을 나누고 RemoveSpaceInline은 문자열의 공백을 제거한다.
반응형