UE4提供多个不同的类,下面做简单的介绍。
参考链接:
完整主题:字符串处理
FString
FString 是一个可变字符串,类似于 std::string。FString 拥有很多方法,方便处理字符串。要创建新的 FString,请使用 TEXT 宏:
FString MyStr = TEXT("Hello, Unreal 4!").
FText
FText 类似于FString,但旨在用于本地化文本。要创建新的 FText,请使用 NSLOCTEXT 宏。该宏将使用默认语言的名称空间、键和值。
FText MyText = NSLOCTEXT("Game UI", "Health Warning Message", "Low Health!")
还可以使用 LOCTEXT 宏,这样只需要每个文件定义一个名称空间即可。确保在文件结束时取消定义。
// 在GameUI.cpp中
#define LOCTEXT_NAMESPACE "Game UI"
//...
FText MyText = LOCTEXT("Health Warning Message", "Low Health!")
//...
#undef LOCTEXT_NAMESPACE
// 文件结束
FName
FName 存储通常反复出现的字符串作为辨识符,以在比较时节省内存和CPU时间。如果有多个对象引用一个字符串,FName 使用较小的存储空间索引来映射到给定字符串,而不是在引用它的每个对象中多次存储完整字符串。这样会将字符串内容存储一次,节省在多个对象中使用该字符串时占用的内存。FName 比较更快是因为UE4能够检查其索引值来确认其是否匹配,而无须检查每一个字符是否相同。
TCHAR
TCHAR 类型是独立于所用字符集存储字符的方法,字符集或许会因平台而异。实际上,UE4字符串使用 TCHAR 数组来存储 UTF-16 编码的数据。可以使用重载的解除引用运算符(它返回 TCHAR)来访问原始数据。
TCHAR Upper('A');
TCHAR Lower = FChar::ToLower(Upper); // 'a'
相关api:TChar API