官术网_书友最值得收藏!

UE4 – making an FString from FStrings and other variables

When coding in UE4, you often want to construct a string from variables. This is pretty easy using the FString::Printf or FString::Format functions.

Getting ready

For this, you should have an existing project into which you can enter some UE4 C++ code. Putting variables into a string is possible via printing. It may be counterintuitive to print into a string, but you can't just concatenate variables together, and hope that they will automatically convert to string, as in some languages such as JavaScript.

How to do it…

  1. Using FString::Printf():
    1. Consider the variables you'd like printed into your string.
    2. Open and take a look at a reference page of the printf format specifiers, such as http://en.cppreference.com/w/cpp/io/c/fprintf.
    3. Try code such as the following:
      FString name = "Tim";
      int32 mana = 450;
      FString string = FString::Printf( TEXT( "Name = %s Mana = %d" ), *name, mana );

    Notice how the preceding code block uses the format specifiers precisely as the traditional printf function does. In the preceding example, we used %s to place a string in the formatted string, and %d to place an integer in the formatted string. Different format specifiers exist for different types of variables, and you should look them up on a site such as cppreference.com.

  2. Using FString::Format(). Write code in the following form:
    FString name = "Tim";
    int32 mana = 450;
    TArray< FStringFormatArg > args;
    args.Add( FStringFormatArg( name ) );
    args.Add( FStringFormatArg( mana ) );
    FString string = FString::Format( TEXT( "Name = {0} Mana = {1}" ), args );
    UE_LOG( LogTemp, Warning, TEXT( "Your string: %s" ), *string );

    With FString::Format(), instead of using correct format specifiers, we use simple integers and a TArray of FStringFormatArg instead. The FstringFormatArg helps FString::Format() deduce the type of variable to put in the string.

主站蜘蛛池模板: 昌吉市| 普格县| 永兴县| 安丘市| 惠水县| 和政县| 五峰| 马尔康县| 邯郸市| 大同市| 调兵山市| 阳谷县| 闵行区| 平定县| 时尚| 葫芦岛市| 工布江达县| 若羌县| 平塘县| 长丰县| 出国| 南宁市| 阳江市| 太和县| 周口市| 仁布县| 怀宁县| 恩平市| 巴林左旗| 丹棱县| 黄大仙区| 仙居县| 于都县| 秦皇岛市| 清镇市| 承德县| 漳州市| 中阳县| 广德县| 崇明县| 寻乌县|