Unreal Engine 4 C++FString操作のいくつかの方式

4153 ワード

  • 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 = 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
    )

    次のパラメータの役割を説明します.
  • InFormatStringはフォーマットされた文字列
  • である.
  • InOrderedArgumentsは、InFormatStringの{index}に対して、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
    )

    次のパラメータの役割を説明します.
  • InFormatStringはフォーマットされた文字列
  • である.
  • InNamedArgumentsは、InFormatStringの{key}に対して、InNamedArgumentsのキー値インデックスに基づいて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"