UE5/UE4 C++で「FString」型の文字列を検索する(FString::Contains、FString::Find、ESearchCase::CaseSensitive、ESearchCase::IgnoreCase、ESearchDir::FromStart、ESearchDir::FromEnd)
公式ドキュメントはこちら。
・FString
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/StringHandling/FString/
「FString」型の文字列同士を比較するには「FString::Contains」関数か「FString::Find」関数を使います。
「FString::Contains」関数は純粋に「FString」型の文字列の中に指定した文字列があるかを調べます。
「FString::Find」関数は「FString」型の文字列の中に指定した文字列がある位置を取得できます。
含まれるかどうかの確認だけなら「FString::Contains」を。
含まれる文字列の位置をもとに文字列操作を行いたい場合などは「FString::Find」を使う感じでしょうか。
実際にはこんな感じの記述になります。
・「FString::Contains」
一つ目の引数には比較したい文字列を指定します。// 検索対象の文字列と検索したい文字列
FString aStringA(TEXT("FString:One:Two"));
FString aStringB(TEXT("ONE"));
// 文字列を検索
bool aResult = aStringA.Contains(aStringB, ESearchCase::CaseSensitive, ESearchDir::FromStart);
二つ目の引数には大文字/小文字を区別するかどうかを指定します。
三つ目の引数は文字列の前後どちらから検索をするかを指定します。「ESearchCase::CaseSensitive」を指定すると大文字/小文字を区別して一致するかどうかを調べます。
「ESearchCase::IgnoreCase」を指定すると大文字/小文字を区別せず一致するかどうかを調べます。
「ESearchDir::FromStart」を指定すると文字列の先頭から調べます。
「ESearchDir::FromEnd」を指定すると文字列の最後から調べます。
・「FString::Find」
一つ目の引数から三つ目の引数までは「FString::Contains」関数と同じになります。// 検索対象の文字列と検索したい文字列
FString aStringA(TEXT("FString:One:Two"));
FString aStringB(TEXT("ONE"));
// 文字列を検索
int32 aFindIndex = aStringA.Find(aStringB, ESearchCase::IgnoreCase, ESearchDir::FromStart, 0);
四つ目の引数には開始地点のインデックスを指定することができます。
文字列操作をする場合は結構多用するような気がします。// 文字列の10番目から検索
int32 aFindIndex = aStringA.Find(aStringB, ESearchCase::IgnoreCase, ESearchDir::FromStart, 10);
これらの文字列系の機能は便利なものも多いので覚えて使っていきたいですね。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑