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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM