UE C++ 字符串的操作

一.为什么对字符串进行操作

1.因为字符串拥有完备操作函数,虽然是以牺牲一定性能的代价

2.它是基于TArray的类容器类,它的构造让它更容易进行增删查改,且顺序可靠自动维护。不像FName,FText,以键值对这种模式

3.对跨平台,网络传输等等都是字符串,有的传字节流。所以UE自己的FString 字符串功能完备就顺理成章了

二.字符串 与 UE其他数字类型的相互转换

cpp 复制代码
void AWXStringActor::InitialString()
{
	FString TestString = TEXT("This is a Test");

	//这下好记住了,FString 很万能
	//FSring -> FName
	FName TestName = FName(*TestString);
	//FString->FText
	FText TestText = FText::FromString(TestString);

	//FName -> FString
	FString BackString = TestName.ToString();

	//FText -> FString
	FString BackString2 = TestText.ToString();

	// Name 可直接 FText ,单Text 却要 经过FString中间商
	//
	//FName->FText
	//FText BackText =FText::FromString(TestName.ToString());饶了不需要
	FText BackText2 = FText::FromName(TestName);

	// FText-> FName
	FName TestName2 = FName(TestText.ToString());
	int32 a = 1;

}

三.具体操作

1.查找,添加,替换。

cpp 复制代码
void AWXStringActor::StringAdd()
{
	FString Test1 = TEXT("TEST");
	FString Test2 = TEXT("test");
	bool bbb = (Test1 == Test2);
	bool bbc = Test1.Equals(Test2);

	FString Test = FString(TEXT("UnrealEngine5678 This is my test FString Unreal"));

	bool u = Test.Contains(TEXT("Unreal"), ESearchCase::CaseSensitive, ESearchDir::FromEnd);
	bool u2 = Test.Contains(TEXT("Unreal"), ESearchCase::CaseSensitive, ESearchDir::FromStart);

	int32 index1 = Test.Find(TEXT("Unreal"), ESearchCase::CaseSensitive, ESearchDir::FromStart);
	int32 index2 = Test.Find(TEXT("Unreal"), ESearchCase::CaseSensitive, ESearchDir::FromStart,5);

	FString Str1 = TEXT("123");
	FString Str2 = Str1.Append(TEXT("100"));
	UE_LOG(LogTemp, Warning, TEXT("%s"), *Str2);

	FString Str3 = Str1 + Str2;
	UE_LOG(LogTemp, Warning, TEXT("%s"), *Str3);
	//UE_LOG(LogAudioMixer, Fatal, TEXT("%s"), *Message);
	TCHAR Code = *TEXT("A");
	FString Str4 = Str3.AppendChar(Code);
	
	//新的字符
	FString ANoterFString = Str4.Replace(TEXT("0"),TEXT("T"));
	//原位置替换
	int32 ReplaceNum = ANoterFString.ReplaceInline(TEXT("123"),TEXT("1234"));

	int a = 0;

}

3.分割

FString | Unreal Engine 5.7 Documentation | Epic Developer Community

Splite

(49 封私信 / 80 条消息) 【UE4】Split() 和ParseIntoArray()函数的用法 - 知乎

相关推荐
蛋蛋的就会顺顺的6 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要8266 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡7 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
死磕音视频7 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
伯恩bourne9 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_9 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
WL学习笔记9 小时前
C & C++ 内存管理
c++·c++内存管理
省钱兄--zs9 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲10 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友