zoukankan      html  css  js  c++  java
  • UE4-字符串

    • UE4-字符串
    • Time: 2020年10月15日14:41:24
    • Author: Yblackd

    @


    1. FName

    2. FText

    3. FString

    ​ FString是唯一允许操作的字符串类。如:大小写转换、截取字符串、逆向等。由于FString是可变的,所以对其进行查找、对比等时开销比不可变字符串类更大。

    3.1 FString-创建

    FString TestFString = FString(TEXT("Test String"));
    

    3.2 FString-对比

    • == 返回true或false,忽略大小写
    • FString::Equals() 返回true或false,可以传参ESearchCase的枚举来确定是否忽略大小写
    TestString == OtherFString;
    // 等同于TestString.Equals(OtherFString, ESearchCase::ignoreCase)
    
    TestString.Equals(OtherFString);
    // 等同于TestString.Equals(OtherFString, ESearchCase::CaseSensitive)
    

    3.3 FString-搜索

    • FString::Contains(),返回true或false,可以传参ESearchCase(是否忽略大小写)和ESearchDir(搜索方向),默认参数为忽略大小写,从前往后搜索。
    • 第二种是 FString::Find(),返回找到的第一个子字符串实例的索引,若未找到则返回-1。可以传参ESearchCase(是否忽略大小写)、ESearchDir(搜索方向)和开始搜索的位置,默认参数为忽略大小写,从前往后搜索,从第一个字符开始。

    3.4 FString-构建

    ​ 可通过两种方法用 字符串其他类型变量来构建FString。

    • ++= 运算符串联FString。如:FString TestFString += OtherFString
    • FString::Printf,FString TestFString = FString::Printf(TEXT("%02d:%02d"), NumMinutes, NumSeconds)
    使用 %s 参数包含 FStrings 时,必须使用 * 运算符返回 %s 参数所需的 TCHAR*。
    如:FString::Printf(TEXT(“Test FString:%s”), *OtherFString)
    

    3.5 FString-类型互转

    ​ FString、FName、FText之间互转

    范例
    FName FString TestFString = TestFName.ToString()
    FName FText TestFText = FText::FromName(TestFName) PS:FName -> FText 在一些情况下有效,但需注意 FName 内容不会从 FText 的“自动本地化”中受益
    FString FName TestFName = FName(*TestFString) PS:FString -> FName 不可靠。因为 FName 不区分大小写,所以转换存在损耗。
    FString FText TestFText = FText::FromString(*TestFString) PS:FString -> FText 在一些情况下有效,但需注意 — FString 内容不会从 FText 的“自动本地化”中受益。
    FText FString TestFString = TestFText.ToString() PS:FText -> FString 不可靠。它在一些语言的转换中存在潜在损耗。
    FText FName FText 到 FName 的转换不存在。但可先转换到 FString,再转换到 FName。 PS:FText -> FString -> FName 不可靠。因为 FName 不区分大小写,所以转换存在损耗。

    ​ FString与其他类型互转

    范例
    float FString FString::SanitizeFloat(FloatVariable);
    int FString FString::FromInt(FloatVariable);
    bool FString InBool ?TEXT(“true”) :TEXT(“false”); ‘true’ or ‘false’
    FVector FString VectorVariable.ToString(); ‘X= Y= Z=’
    FVector2D FString Vector2DVariable.ToString(); ‘X= Y=’
    FRotator FString RotatorVariable.ToString(); ‘P= Y= R=’
    FLinearColor FString LinearColorVariable.ToString(); ‘(R=,G=,B=,A=)’
    UObject FString (InObj != NULL) ? InObj->GetName() : FString(TEXT(“None”)); UObject’s FName
    FString int FCString::Atoi(*TestFString);
    FString float FCString::Atof(*TestFString);
    FString bool TestFString.ToBool(); “True”、“Yes”、“GTrue”、“GYes”、非0数字,转为true;“False”、“No”、“GFalse”、“GNo”、“0”、不可解析的字符串,转为false。

    4. 参考

    参考链接: https://blog.csdn.net/u011476173/article/details/98211552

  • 相关阅读:
    走向灵活软件之路——面向对象的六大原则
    StartUML破解
    非常实用的Android Studio快捷键
    Android Studio更新失败
    《Effect Java》学习笔记1———创建和销毁对象
    使用spring单元调试出错initializationError
    Spring注入的不同方式
    DNS域名解析的过程
    浏览器的缓存机制
    Http建立连接的方式
  • 原文地址:https://www.cnblogs.com/yblackd/p/13820470.html
Copyright © 2011-2022 走看看