[언리얼엔진] FString 문자열 나누기, 공백 제거

    시작하며

    언리얼 엔진에서 문자열을 다루어야할 경우가 종종 발생한다. 그 중 자주 쓰는 문자열 나누기와 공백(스페이스) 제거하는 방법을 기록하고자 한다.

    문자열 나누기

    파일의 경로에서 폴더명이나 파일명을 구하는 상황등에서 문자열을 특정 단어로 나누어야 할때가 있다. 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은 문자열의 공백을 제거한다.

    반응형

    댓글

    Designed by JB FACTORY