美文网首页
7 UE5 FString的使用、转换和常用方法介绍

7 UE5 FString的使用、转换和常用方法介绍

作者: 游戏开发程序员 | 来源:发表于2024-02-20 09:16 被阅读0次

FString: A dynamically sizeable string.
内部用的是TArray做的存储,所以在看TArray时会有一些共鸣。

class FString
{
public:
    using AllocatorType = TSizedDefaultAllocator<32>;

private:
    /** Array holding the character data */
    typedef TArray<TCHAR, AllocatorType> DataType;
    DataType Data;

先上代码:

常用的格式化输出学习:

    UE_LOG(TestLog, Warning, TEXT("int  %d"), 1234);
    UE_LOG(TestLog, Warning, TEXT("float  %f"), 12.34);
    FString str = TEXT("test FString");
    UE_LOG(TestLog, Warning, TEXT("string  %s"), *str);
    UE_LOG(TestLog, Warning, TEXT("[%s] len() is %d"), *str, str.Len());

常用的FName FText FString 转换:

    - FName 不区分大小写。不可变,无法被操作,通过键进行 FNames 的查找和访问速度较快。
    - FText 支持文本本地化,因此面向用户的所有文本
    - FString 可以搜索、修改并且与其他字符串比较。保存自己的字符数组.

    // 类型转换FName  FText FString
    FName name = FName(*str); // 资源ID
    FText text = FText::FromName(name); // 本地化的文本保存
    text = FText::FromString(str);

    FString _str = name.ToString(); // 参考std string
    _str = text.ToString(); 

基础类型转换(int bool float char wchar_t):

    FString TheString = TEXT("中文123.021");

    char* myChar = TCHAR_TO_UTF8(*TheString);
    myChar = TCHAR_TO_ANSI(*TheString);

    std::string stdStr = TCHAR_TO_UTF8(*TheString);
    stdStr = TCHAR_TO_ANSI(*TheString);

    std::wstring stdWStr = TCHAR_TO_WCHAR(*TheString);
    text = FText::FromString(TheString);

    TheString = "123.021";
    bool MyBool = TheString.ToBool();
    int32 MyInt = FCString::Atoi(*TheString);
    float MyFloat = FCString::Atof(*TheString);
    double MyDouble = FCString::Atod(*TheString);

    FString NewString = FString::FromInt(1234);
    NewString = FString::SanitizeFloat(12.34f);
    NewString = UTF8_TO_TCHAR("12.34");
    NewString = WCHAR_TO_TCHAR(L"12.34");

FString的常用函数

    // 填充
    NewString.Reset();
    NewString.AppendChar('A');
    for(int i = 0; i < 10; i++)
    {
        NewString.AppendInt(i);
    }

    // 对比
    FString strA = TEXT("1234");
    FString strB = TEXT("1234");
    if(strA == strB)
    {
        UE_LOG(TestLog, Warning, TEXT("strA == strB == %s"), *strA);
    }

    // 查找 返回索引
    int32 index = strA.Find(TEXT("123"));
    if(index >= 0 )
    {
        UE_LOG(TestLog, Warning, TEXT("strA.Find 123"));
    }

    // 查找 返回bool
    if(strA.Contains(TEXT("23")))
    {
        UE_LOG(TestLog, Warning, TEXT("strA.Contains 23"));
    }

字符串常用的替换、分割等函数

    // 替换
    FString strC = TEXT("12345");
    bool bStart = strC.StartsWith("123");
    strC = strC.Replace(TEXT("123"), TEXT("abc"));

    // 获取左、右
    _str = TEXT("This is a FString");
    FString Lstr = _str.Left(2);
    FString Rstr = _str.Right(2);
    // 分割到数组 不区分大小写
    if (!_str.IsEmpty())
    {
        TArray<FString> _ary;
        int32 count = _str.ParseIntoArray(_ary, TEXT("s"));
        // 分割为4个元素
        int32 size = _ary.Num();
    }

相关文章

  • Python pathlib subprocess fstrin

    介绍 记录一下几个工具的使用方法 pathlib subprocess fstring shutil pathli...

  • Python基础(19) - 使用fstring方法格式化字符串

    在Python中哪种格式化方式可以直接使用变量 1.使用fstring方法可以直接格式化 fstring格式化字符...

  • FString转换

    https://wiki.unrealengine.com/String_Conversions:_FString...

  • Python字符串常用方法

    前言 前面的文章已经介绍了字符串的大小写转换和格式化,现在来介绍下字符串其他的常用方法 find()方法 描述 f...

  • TkMybatis的常用方法介绍

    TkMybatis的常用方法介绍 使用 注:为了演示所以同时引用了MySqlMapper和OracleMapper...

  • 常用实用分类集合

    常用分类工具的集合,废话不多说,直接介绍功能和效果。 一、使用方法 使用 CocoaPods :`pod 'YJC...

  • thymeleaf

    thymeleaf常用标签的使用方法基本使用方式 对象引用方式 时间类型转换 text与utexttext:不解析...

  • NSString的常用方法

    NSString的常用方法 //1.把其他类型转换成OC的字符串,使用stringWithFormat方法 //2...

  • Collection接口和常用方法

    Collection接口和常用方法Collection接口遍历元素方式1-使用Iterator(迭代器) 基本介绍...

  • 第五章Date类型

    目录 简述 获取毫秒的几种转换方法 常用的几种方法 简述 要创建一个日期对象,使用new操作符和Date构造函数即...

网友评论

      本文标题:7 UE5 FString的使用、转换和常用方法介绍

      本文链接:https://www.haomeiwen.com/subject/czmmadtx.html