【UE C++】FString的基本用法

这篇具有很好参考价值的文章主要介绍了【UE C++】FString的基本用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

字符串的增删查改

  1. 构造和赋值操作
FString str1;//empty
FString str2("str");//L"str"
FString str3(3, "str1");//L"str"
FString str4 = TEXT("str");//L"str"
FString str5 = str2;//L"str"
  1. 追加,append和AppendChars ,字符串末尾增加另一个字符串
FString strName1 = TEXT("str");
strName1.Append(TEXT("Append1"));//L"strAppend1"
FString strName2 = TEXT("str");
strName2.Append(TEXT("Append1"),3);//L"strApp"
FString& FString::operator+=(const FString & Str),字符串末尾增加另一个字符串
FString strName1 = TEXT("str");
strName1 += TEXT("Append1"));//L"strAppend1"
  1. 插入操作void InsertAt(int32 Index, const FString& Characters),在指定位置插入字符串
FString strName = TEXT("StrStr");
strName.InsertAt(3, TEXT("Hello"));//L"StrHelloStr"
  1. 替换
//字符串替换
FString str = TEXT("Hello World");
FString str1 = str.Replace(TEXT("Hello"),TEXT("New"));//L"New World"
//字符替换
FString str2 = TEXT("Hello World");
str2.ReplaceCharInline(TEXT('l'),TEXT('a'));//L"Heaao Worad"
  1. 截断操作
	FString str = TEXT("Hello World ");
	FString str1 = str.Right(5);
	FString str2 = str.Left(5);
  1. 删除操作
bool RemoveFromStart()从开始删除某个字符串,若删除成功,返回true;
FString strName1 = TEXT("Hello World Hello");
strName1.RemoveFromStart(TEXT("Hello"));//L" World Hello"
bool RemoveFromEnd() 从结尾删除某个字符串,若删除成功,返回true;
FString strName2 = TEXT("Hello World Hello");
strName2.RemoveFromEnd(TEXT("Hello"));//L"Hello World "
void RemoveAt(int32 Index, int32 Count = 1)从指定位置删除自定长度的字节
FString strName3 = TEXT("Hello World Hello");
strName3.RemoveAt(6,5);//L"Hello  Hello"
  1. 清空字符串Empty
FString strName3 = TEXT("Hello World Hello");
strName3.Empty();
  1. 去掉空格,支持去除开始,末尾及开始和末尾空格

赋值给其它字符串

FString str = TEXT(" str1 str2 ");//
FString str1 = str.TrimStart();//L"str1 str2 "
FString str2 = str.TrimEnd();//L" str1 str2"
FString str3 = str.TrimStartAndEnd();//L"str1 str2"
字符串内部
FString str4 = TEXT(" str1 str2 ");
str4.TrimStartInline();//L"str1 str2 "
FString str5 = TEXT(" str1 str2 ");
str5.TrimStartInline();//L"str1 str2"
FString str6 = TEXT(" str1 str2 ");
str6.TrimStartAndEndInline();//L" str1 str2"
  1. 字符操作
FString str4 = TEXT("Hello World");
str4[0] = TEXT('W');//L"Wello World"
  1. 路径拼接
FString& operator/=( const FString& Str )实现两个字符串的路径连接
FString strCon1 = TEXT("C:/git");
strCon1 /= TEXT("NewFolder");//L"C:/git/NewFolder"
 friend FString operator/(const FString& Lhs, const TCHAR* Rhs)实现两个字符串的实现两个字符串的路径连接
FString strCon2 = FString(TEXT("C:/git")) / TEXT("NewFolder");//L"C:/git/NewFolder"
void PathAppend(const TCHAR* Str, int32 StrLength)路径末尾添加新的路径
FString strCon1 = TEXT("C:/git");
strCon1.PathAppend(TEXT("NewFolder"),3);//L"C:/git/New"
FString  str1 = FString::Printf(TEXT("test %d "),1);

- 查询字符串数据

查询字符串数据又多种方式,具体如下:

  1. bool FString::StartsWith(,)判断一个字符串是否以某个字符串开头。此函数具有两个参数,第一个参数指定了字符串(const TChar * 或const FString &),第二个参数指定是否大小写敏感(默认情况下是大小写不敏感)。例如:
FString str = TEXT("hello wolrd");
str.StartsWith(TEXT("hello"));//返回true
str.StartsWith(TEXT("hello1"));//返回false
  1. bool FString::EndsWith(,)类似于bool FString::StartsWith(,),此函数判断一个字符串是否以某个字符串结尾。
  2. bool FString::Contains()判断是否包含某个字符串,第一个参数为需查找的字符串,第二个参数为是否大小写敏感,第三个参数是否从头开始搜索。例如:
FString str = TEXT("hello wolrd");
str.Contains(TEXT("hello"));//返回true
str.Contains(TEXT("hello1"));//返回false
  1. 比较两个字符串

bool operator<=(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否小于等于第二个字符串;

bool operator<(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否小于第二个字符串;

bool operator>=(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否大于等于第二个字符串;

bool operator>(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否大于第二个字符串;

bool operator==(const FString& Lhs, const FString& Rhs) 判断两个字符串是否相等;

bool operator!=(const FString& Lhs, const CharType* Rhs) 判断两个字符串是否不相等。

  1. find
int32 FString::Find() 查找字符串,返回字符串开始位置;
bool FString::FindChar( TCHAR InChar, int32& Index ) 查找字符,并返回字符位置;
bool FString::FindLastChar( TCHAR InChar, int32& Index ) 查找追后一个字符,并返回位置信息
int32 FString::FindLastCharByPredicate(Predicate Pred)

-字符串转换

  1. 转换为FName或者FText
FName sNameFromStr = FName(*sStr);//FString到FName的转换
FText sText = FText::FromString(sStr);//FString到FText的转换
  1. 转换为数字类型
FString strFloat = FString::SanitizeFloat(123.4);
FString strInt = FString::FromInt(123);
  1. FName或者FText转换为字符串
FName sNameFromStr = FName(*sStr);//FString到FName的转换
FString sStrFromName = sName.ToString();//FName到FString的转换
FText sText = FText::FromString(sStr);//FString到FText的转换
FString sStrFromText = sText.ToString();//FText到FString的转换
  1. 数值类型转换为字符串
float f1 = FCString::Atof(TEXT("123.4"));
double d1 = FCString::Atod(TEXT("123.4"));
int i1 = FCString::Atoi(TEXT("123"));
int64 i64 = FCString::Atoi64(TEXT("123"));
bool b1 = FCString::ToBool(TEXT("true"));
  1. 大小写转换

赋值操作

FString str = TEXT("Hello");
FString str1 = str.ToLower();//L"hello"
FString str2 = str.ToUpper();//L"HELLO"

内部转换

FString str = TEXT("Hello");
str.ToLowerInline();
str.ToUpperInline();

- 字符串的增删查改

  1. 构造和赋值操作
FString str1;//empty
FString str2("str");//L"str"
FString str3(3, "str1");//L"str"
FString str4 = TEXT("str");//L"str"
FString str5 = str2;//L"str"
  1. 追加,append和AppendChars ,字符串末尾增加另一个字符串
FString strName1 = TEXT("str");
strName1.Append(TEXT("Append1"));//L"strAppend1"
FString strName2 = TEXT("str");
strName2.Append(TEXT("Append1"),3);//L"strApp"
FString& FString::operator+=(const FString & Str),字符串末尾增加另一个字符串
FString strName1 = TEXT("str");
strName1 += TEXT("Append1"));//L"strAppend1"
  1. 插入操作void InsertAt(int32 Index, const FString& Characters),在指定位置插入字符串
FString strName = TEXT("StrStr");
strName.InsertAt(3, TEXT("Hello"));//L"StrHelloStr"
  1. 替换

//字符串替换

FString str = TEXT("Hello World");
FString str1 = str.Replace(TEXT("Hello"),TEXT("New"));//L"New World"

//字符替换

FString str2 = TEXT("Hello World");
str2.ReplaceCharInline(TEXT('l'),TEXT('a'));//L"Heaao Worad"
  1. 截断操作
	FString str = TEXT("Hello World ");
	FString str1 = str.Right(5);
	FString str2 = str.Left(5);
  1. 删除操作
bool RemoveFromStart()从开始删除某个字符串,若删除成功,返回true;
FString strName1 = TEXT("Hello World Hello");
strName1.RemoveFromStart(TEXT("Hello"));//L" World Hello"
bool RemoveFromEnd() 从结尾删除某个字符串,若删除成功,返回true;
FString strName2 = TEXT("Hello World Hello");
strName2.RemoveFromEnd(TEXT("Hello"));//L"Hello World "
void RemoveAt(int32 Index, int32 Count = 1)从指定位置删除自定长度的字节
FString strName3 = TEXT("Hello World Hello");
strName3.RemoveAt(6,5);//L"Hello  Hello"
  1. 清空字符串Empty
FString strName3 = TEXT("Hello World Hello");
strName3.Empty();
  1. 去掉空格,支持去除开始,末尾及开始和末尾空格

赋值给其它字符串

FString str = TEXT(" str1 str2 ");//
FString str1 = str.TrimStart();//L"str1 str2 "
FString str2 = str.TrimEnd();//L" str1 str2"
FString str3 = str.TrimStartAndEnd();//L"str1 str2"

字符串内部

FString str4 = TEXT(" str1 str2 ");
str4.TrimStartInline();//L"str1 str2 "
FString str5 = TEXT(" str1 str2 ");
str5.TrimStartInline();//L"str1 str2"
FString str6 = TEXT(" str1 str2 ");
str6.TrimStartAndEndInline();//L" str1 str2"
  1. 字符操作
FString str4 = TEXT("Hello World");
str4[0] = TEXT('W');//L"Wello World"
  1. 路径拼接
FString& operator/=( const FString& Str )实现两个字符串的路径连接
FString strCon1 = TEXT("C:/git");
strCon1 /= TEXT("NewFolder");//L"C:/git/NewFolder"
 friend FString operator/(const FString& Lhs, const TCHAR* Rhs)实现两个字符串的实现两个字符串的路径连接
FString strCon2 = FString(TEXT("C:/git")) / TEXT("NewFolder");//L"C:/git/NewFolder"
void PathAppend(const TCHAR* Str, int32 StrLength)路径末尾添加新的路径
FString strCon1 = TEXT("C:/git");
strCon1.PathAppend(TEXT("NewFolder"),3);//L"C:/git/New"
FString  str1 = FString::Printf(TEXT("test %d "),1);

-查询字符串数据

查询字符串数据又多种方式,具体如下:

  1. bool FString::StartsWith(,)判断一个字符串是否以某个字符串开头。此函数具有两个参数,第一个参数指定了字符串(const TChar * 或const FString &),第二个参数指定是否大小写敏感(默认情况下是大小写不敏感)。例如:
FString str = TEXT("hello wolrd");
str.StartsWith(TEXT("hello"));//返回true
str.StartsWith(TEXT("hello1"));//返回false
  1. bool FString::EndsWith(,)类似于bool FString::StartsWith(,),此函数判断一个字符串是否以某个字符串结尾。
  2. bool FString::Contains()判断是否包含某个字符串,第一个参数为需查找的字符串,第二个参数为是否大小写敏感,第三个参数是否从头开始搜索。例如:
FString str = TEXT("hello wolrd");
str.Contains(TEXT("hello"));//返回true
str.Contains(TEXT("hello1"));//返回false
  1. 比较两个字符串

bool operator<=(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否小于等于第二个字符串;

bool operator<(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否小于第二个字符串;

bool operator>=(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否大于等于第二个字符串;

bool operator>(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否大于第二个字符串;

bool operator==(const FString& Lhs, const FString& Rhs) 判断两个字符串是否相等;

bool operator!=(const FString& Lhs, const CharType* Rhs) 判断两个字符串是否不相等。

  1. find
int32 FString::Find() 查找字符串,返回字符串开始位置;
bool FString::FindChar( TCHAR InChar, int32& Index ) 查找字符,并返回字符位置;
bool FString::FindLastChar( TCHAR InChar, int32& Index ) 查找追后一个字符,并返回位置信息
int32 FString::FindLastCharByPredicate(Predicate Pred)

3)字符串转换

  1. 转换为FName或者FText
FName sNameFromStr = FName(*sStr);//FString到FName的转换
FText sText = FText::FromString(sStr);//FString到FText的转换
  1. 转换为数字类型
FString strFloat = FString::SanitizeFloat(123.4);
FString strInt = FString::FromInt(123);
  1. FName或者FText转换为字符串
FName sNameFromStr = FName(*sStr);//FString到FName的转换
FString sStrFromName = sName.ToString();//FName到FString的转换
FText sText = FText::FromString(sStr);//FString到FText的转换
FString sStrFromText = sText.ToString();//FText到FString的转换
  1. 数值类型转换为字符串
float f1 = FCString::Atof(TEXT("123.4"));
double d1 = FCString::Atod(TEXT("123.4"));
int i1 = FCString::Atoi(TEXT("123"));
int64 i64 = FCString::Atoi64(TEXT("123"));
bool b1 = FCString::ToBool(TEXT("true"));
  1. 大小写转换

- 赋值操作

FString str = TEXT("Hello");
FString str1 = str.ToLower();//L"hello"
FString str2 = str.ToUpper();//L"HELLO"

- 内部转换

FString str = TEXT("Hello");
str.ToLowerInline();
str.ToUpperInline();
  1. 其他类型与字符串之间的转换

UE4部分类可以实现与字符串之间的相互转换文章来源地址https://www.toymoban.com/news/detail-584562.html

	FString FLinearColor::ToString() const
	{
		return FString::Printf(TEXT("(R=%f,G=%f,B=%f,A=%f)"),R,G,B,A);
	}
   	bool InitFromString( const FString& InSourceString )
	{
		R = G = B = 0.f;
		A = 1.f;

		// The initialization is only successful if the R, G, and B values can all be parsed from the string
		const bool bSuccessful = FParse::Value( *InSourceString, TEXT("R=") , R ) && FParse::Value( *InSourceString, TEXT("G="), G ) && FParse::Value( *InSourceString, TEXT("B="), B );
 
		// Alpha is optional, so don't factor in its presence (or lack thereof) in determining initialization success
		FParse::Value( *InSourceString, TEXT("A="), A );
 
		return bSuccessful;
	}  
  1. 解决中文乱码问题
FString Str = "你好";//会出现乱码
FString Str = TEXT("你好");//系统通过头文件Platform.h中TEXT宏判断是utf8编码还是unicode编码;

到了这里,关于【UE C++】FString的基本用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【虚幻引擎UE】UE4/UE5 新人科普向

    Unreal Engine是当前最为流行的游戏引擎之一,具有丰富的游戏开发功能和强大的游戏引擎渲染能力。 UE5官方文档:UE5官方文档非常详细,介绍了UE5的各个功能和应用,适合入门学习和深入探究。链接:https://docs.unrealengine.com/5.1/zh-CN/ UE5中文社区:该社区聚集了大量的UE5开发者,

    2024年02月09日
    浏览(50)
  • 【虚幻引擎】UE4/UE5 pak挂载

     找到:D:UEUE_4.27EngineBinariesWin64,  WindowS+R打开CMD命令 运行UnrealPak,运行结果如下      注意如果想要加载Pak内资源,那么这些资源必须是经过Cook的。如果打包的是未Cook的资源,那么即使Pak挂载成功,也不可能会成功加载Pak内资源。  Cook好之后,存储的路径在你的I:DBJ

    2024年02月10日
    浏览(48)
  • 【虚幻引擎】UE4/UE5科大讯飞文字合成语音

    B站视频链接:https://space.bilibili.com/449549424?spm_id_from=333.1007.0.0   第一步:首先进入讯飞开放平台注册一个账号,然后创建一个 创建一个应用,命名按照你自己的想法来,会产生一个APPID,具体参考UE4如何接入科大讯飞的语音识别_ue4 科大讯飞的语音识别_飞起的猪的博客-CSDN博

    2024年02月13日
    浏览(41)
  • UE学习笔记--如何区分FString、FName、FText,以及使用场景

    最近在学习 UE,发现 UE 基本没有用到 std::string,基本使用的是FString、FName、FText。去网络上查了些资料并且学习了下,在这里做个简单介绍和总结。为什么需要三种字符串呢?主要是因为他们三都有自己擅长的场景。 FString 是 的缩写Fixed String,是虚幻引擎中使用的动态字符串

    2024年01月21日
    浏览(34)
  • 【虚幻引擎】UE4/UE5鼠标点击事件实现物体移动

     在UE4/UE5中,引擎有它自己的一套框架体系,虚幻就是基于这一个框架体系来实现的。其中就有PlayerController(玩家控制器),玩家控制器中就有对鼠标的一系列设置,包括显示鼠标,允许点击事件等。  1.创建PlayerController,命名为MyPlayerController 2.打开MyPlayerController,勾选参数

    2024年02月10日
    浏览(55)
  • 【虚幻引擎】UE4/UE5数字孪生与前端Web页面匹配

            数字孪生是一种多维动态的数字映射,可大幅提高效能。数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成对现实体的复制和映射,从而反映物理实体的全生命周期过程。数字孪生

    2024年02月03日
    浏览(55)
  • 【虚幻引擎UE】UE4/UE5 GIS辅助类插件推荐及使用介绍

    此插件将虚幻引擎连接到Speckle,允许从Speckle接收版本化的3D数据,可以实现Revit、Rhino、Blender、Sketchup、Unity、虚幻引擎、AutoCAD等之间的完全互操作协作。 这是一个涵盖了在展厅、工业产品或其他3D场景中导航的许多可能性的系统。在窗口、触摸屏、手机和Html5上。 只需快速

    2024年02月07日
    浏览(59)
  • 【虚幻引擎UE】UE4/UE5 功能性插件推荐及使用介绍 2

    (基于UE5 的Python支持插件) 支持Python语言基于UE5进行开发 GIT地址:https://github.com/mamoniem/UnrealEditorPythonScripts (基于UE5 的Haxe支持插件) Haxe是一门新兴的开源编程语言,是一种开源的编程语言。支持Haxe语言基于UE5进行开发。 GIT地址:https://github.com/RobertBorghese/Haxe-UnrealEngine

    2024年02月06日
    浏览(70)
  • 【虚幻引擎UE】UE4/UE5 功能性插件推荐及使用介绍 1

    实现POST/GET基本方法,并支持HEAD带信息。 使用案例:【虚幻引擎UE】UE5 三种模式调用API详解(案例基于免费Varest插件) 能够快速实现打开对话框获取数据的导入、导出路径。 某月限免插件,比较方便的地图插件,可以改改样式直接用。 http下载数据到指定路径 按空格可以切

    2023年04月11日
    浏览(63)
  • UE4,UE5虚幻引擎,Command Console控制台命令,参数集

    1、Command Console控制台命令,虚幻官方文档 https://docs.unrealengine.com/5.0/zh-CN/unreal-editor-interface/ 2、在cmd控制台 help 并按 Enter 3、自动跳转到网页,在网页中,可以查找所有的命令行参数。

    2024年02月15日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包