Unreal Engine 4 C++FString操作のいくつかの方式
Unreal Engine 4 C++FString操作のいくつかの方式
記憶力がいいのは腐った筆頭に及ばないでしょう.やはり記録しておきましょう.
1.Printfフォーマット
これはC、C++のprintfの使い方と同じで、まず声明を見てみましょう.
static FString Printf
(
const TCHAR * Fmt,
...
)
公式に詳しく紹介されていますが、使い方は以下の通りです.
int32 i = 1;
FString Text1 = FString::Printf(TEXT("Text%d"), i);
コード実行後のText 1の値は次のとおりです.
"Text1"
2.Format TArrayフォーマット
このメソッドで使用する関数はFString::FormatのTArrayバージョンで、次のように宣言されます.
static FString Format
(
const TCHAR * InFormatString,
const TArray < FStringFormatArg > & InOrderedArguments
)
次のパラメータの役割を説明します.
ちょっとわかりにくいですが、コードと効果を直接見ると分かりやすいです.
int32 i = 1;
TArray FormatArray;
FormatArray.Add(FStringFormatArg(i));
FString Text1 = FString::Format(TEXT("Text{0}"), FormatArray);
コード実行後のText 1の値は次のとおりです.
"Text1"
TArrayバージョンでは、配列の0番目の要素に{0}を置き換え、配列の1番目の要素に{1}を置き換えるより多くの値をフォーマットすることもできます.
TArray FormatArray;
FormatArray.Add(FStringFormatArg(1));
FormatArray.Add(FStringFormatArg(2));
FString Text1 = FString::Format(TEXT("Text{0}{1}{0}"), FormatArray);
コード実行後のText 1の値は次のとおりです.
"Text121"
3.Format TMapフォーマット
このメソッドで使用する関数はFString::FormatのTMapバージョンで、次のように宣言されます.
static FString Format
(
const TCHAR * InFormatString,
const TMap < FString , FStringFormatArg > & InNamedArguments
)
次のパラメータの役割を説明します.
ちょっとわかりにくいですが、コードと効果を直接見ると分かりやすいです.
TMap FormatMap;
FormatMap.Add(TEXT("key1"), FStringFormatArg(1));
FString Text1 = FString::Format(TEXT("Text{key1}"), FormatMap);
コード実行後のText 1の値は次のとおりです.
"Text1"
TMapバージョンでは、より多くの値をフォーマットすることもできます.Mapのキー値がkey 1の値で{key 1}を置き換え、キー値がkey 2の値で{key 2}を置き換えます.
TMap FormatMap;
FormatMap.Add(TEXT("key1"), FStringFormatArg(1));
FormatMap.Add(TEXT("key2"), FStringFormatArg(2));
FString Text1 = FString::Format(TEXT("Text{key1}{key2}{key1}"), FormatMap);
コード実行後のText 1の値は次のとおりです.
"Text121"
4.文字列の結合
Unreal Engine 4のFStringは多くのオペレータを再ロードしており、FStringを簡単につなぐことができます.
FString Text1 = TEXT("Text") + FString::FormatAsNumber(1);
コード実行後のText 1の値は次のとおりです.
"Text1"