天天看點

Unreal Engine 4 C++ FString操作的幾種方式Unreal Engine 4 C++ FString操作的幾種方式

  • Unreal Engine 4 C FString操作的幾種方式
    • Printf 格式化
    • Format TArray 格式化
    • Format TMap 格式化
    • 字元串拼接

Unreal Engine 4 C++ FString操作的幾種方式

好記性不如爛筆頭啊,還是記錄一下!

1.Printf 格式化

這個和C、C++的printf用法一樣,先來看一看聲明

static FString Printf
(
    const TCHAR * Fmt,
    ...
)
           

官方有詳細介紹,用法如下:

int32 i = ;
FString Text1 = FString::Printf(TEXT("Text%d"), i);
           

代碼運作後會Text1的值為:

2.Format TArray 格式化

此方法用的函數為FString::Format的TArray版本,聲明如下:

static FString Format
(
    const TCHAR * InFormatString,
    const TArray < FStringFormatArg > & InOrderedArguments
)
           

說明下參數的作用:

  • InFormatString 是進行格式化的字元串
  • InOrderedArguments 是會對InFormatString中的{index},根據InOrderedArguments中的索引進行替換

有點難懂,直接看代碼和效果會容易了解一些:

int32 i = ;
TArray<FStringFormatArg> FormatArray;
FormatArray.Add(FStringFormatArg(i));
FString Text1 = FString::Format(TEXT("Text{0}"), FormatArray);
           

代碼運作後會Text1的值為:

TArray版本還可以格式化更多的值,會用數組的第0個元素替換{0},用數組的第1個元素替換{1}。

TArray<FStringFormatArg> FormatArray;
FormatArray.Add(FStringFormatArg());
FormatArray.Add(FStringFormatArg());
FString Text1 = FString::Format(TEXT("Text{0}{1}{0}"), FormatArray);
           

代碼運作後會Text1的值為:

3.Format TMap 格式化

此方法用的函數為FString::Format的TMap版本,聲明如下:

static FString Format
(
    const TCHAR * InFormatString,
    const TMap < FString , FStringFormatArg > & InNamedArguments
)
           

說明下參數的作用:

  • InFormatString 是進行格式化的字元串
  • InNamedArguments 是會對InFormatString中的{key},根據InNamedArguments中的鍵值索引替換成InNamedArguments裡面的值

有點難懂,直接看代碼和效果會容易了解一些:

TMap<FString, FStringFormatArg> FormatMap;
FormatMap.Add(TEXT("key1"), FStringFormatArg());
FString Text1 = FString::Format(TEXT("Text{key1}"), FormatMap);
           

代碼運作後會Text1的值為:

TMap版本也還可以格式化更多的值,會用Map的鍵值為key1的值替換{key1},用鍵值為key2的值替換{key2}。

TMap<FString, FStringFormatArg> FormatMap;
FormatMap.Add(TEXT("key1"), FStringFormatArg());
FormatMap.Add(TEXT("key2"), FStringFormatArg());
FString Text1 = FString::Format(TEXT("Text{key1}{key2}{key1}"), FormatMap);
           

代碼運作後會Text1的值為:

4.字元串拼接

Unreal Engine 4 的FString重載了很多操作符,可以很友善的拼接FString:

FString Text1 = TEXT("Text") + FString::FormatAsNumber();
           

代碼運作後會Text1的值為:

繼續閱讀