CTR NEX API Reference
nn::nex::String クラス

NEX で使用されるコア文字列型。 [詳解]

#include <OnlineCore/src/Platform/Core/String.h>

+ nn::nex::String の継承関係図

クラス

class  LiteralStringHolder
 任意の文字列リテラルを格納するクラス。String::GetLiteralStringAs() により生成されます。 [詳解]
 

公開メンバ関数

 String ()
 コンストラクタです。 [詳解]
 
 String (const qChar8 *szString)
 コンストラクタです。 [詳解]
 
 String (const qWideChar *szString)
 コンストラクタです。 [詳解]
 
 String (const String &oString)
 コピーコンストラクタです。 [詳解]
 
virtual ~String ()
 デストラクタです。
 
size_t Capacity () const
 メモリの再割り当てなしで保持可能な文字列長を取得します。 [詳解]
 
qBool ContainsCase (const String &strSubstr) const
 引数の文字列を含むかどうかを返します。大文字と小文字は区別されます。 [詳解]
 
qBool ContainsNoCase (const String &strSubstr) const
 引数の文字列を含むかどうかを返します。大文字と小文字の区別はしません。 [詳解]
 
size_t CopyString (qChar8 *pCopy, size_t size) const
 文字列のコピーを作成します。 [詳解]
 
size_t CopyString (qWideChar *pCopy, size_t size) const
 文字列のコピーを作成します。 [詳解]
 
void CreateCopy (qChar8 **szCopy) const
 文字列のコピーを作成します。 [詳解]
 
void CreateCopy (qWideChar **szCopy) const
 文字列のコピーを作成します。 [詳解]
 
const qCharCStr () const
 文字列を C 形式のポインタで返します。 [詳解]
 
qBool Empty () const
 文字列長が 0 なら true を返します。 [詳解]
 
qInt FindSubstringCase (const qChar *szSubstring, qInt poi=0) const
 文字列を検索します。大文字と小文字は区別されます。 [詳解]
 
qInt FindSubstringNoCase (const qChar *szSubstring) const
 文字列を検索します。大文字と小文字の区別はしません。 [詳解]
 
qCharGetBufferPtr ()
 オブジェクト内部の文字列バッファを返します。 [詳解]
 
const qCharGetBufferPtr () const
 オブジェクト内部の文字列バッファを返します(const版)。 [詳解]
 
size_t GetLength () const
 文字列長を返します。NULL 終端は含みません。 [詳解]
 
template<typename CharT >
LiteralStringHolder< CharT > GetLiteralStringAs () const
 テンプレート引数で指定した型で文字列を取得します。 [詳解]
 
qBool operator!= (const String &oString) const
 比較演算子です。 [詳解]
 
qBool operator!= (const qChar *szString) const
 比較演算子です。 [詳解]
 
Stringoperator+= (const String &strString)
 複合代入演算子です。文字列を結合します。 [詳解]
 
qBool operator< (const String &oString) const
 比較演算子です。 [詳解]
 
qBool operator<= (const String &oString) const
 比較演算子です。 [詳解]
 
Stringoperator= (const qChar8 *szString)
 代入演算子です。 [詳解]
 
Stringoperator= (const qWideChar *szString)
 代入演算子です。 [詳解]
 
Stringoperator= (const String &oString)
 代入演算子です。 [詳解]
 
qBool operator== (const String &oString) const
 比較演算子です。 [詳解]
 
qBool operator== (const qChar *szString) const
 比較演算子です。 [詳解]
 
qBool operator> (const String &oString) const
 比較演算子です。 [詳解]
 
qBool operator>= (const String &oString) const
 比較演算子です。 [詳解]
 
void Reserve (size_t length)
 指定した文字列長分の文字列を格納できるメモリを事前を確保します。 [詳解]
 
void ShrinkToFit ()
 内部バッファを現在の文字列長に切り詰めます。
 
void Swap (String &rhs) NEX_NOEXCEPT
 オブジェクト内部の情報を入れ替えます。 [詳解]
 
void ToLower ()
 小文字に変換します。
 
void ToUpper ()
 大文字に変換します。
 
String Truncate (size_t uiLength) const
 指定した文字列長以降を切り捨てた String オブジェクトを作成します。 [詳解]
 

静的公開メンバ関数

static int Base64ToByteArray (const qChar *szASrc, size_t uiSrcLength, qByte *pbDest, size_t uiDestLength)
 base64 形式の文字列からバイナリデータに変換します。 [詳解]
 
static int Base64ToByteArray (const String &strSrc, qByte *pbDest, size_t uiDestLength)
 base64 形式の文字列からバイナリデータに変換します。 [詳解]
 
static int ByteArrayToBase64 (const qByte *pbSrc, size_t uiSrcLength, qChar *szADest, size_t uiDestLength)
 入力バイナリデータを base64 形式の qChar 文字列に変換します。 [詳解]
 
static void ReleaseCopy (qChar8 *szCopy)
 文字列を解放します。 [詳解]
 
static void ReleaseCopy (qWideChar *szCopy)
 文字列を解放します。 [詳解]
 

詳解

NEX で使用されるコア文字列型。

このクラスは基本的な文字列の機能を定義します。

CTR-NEX では UTF-16LE に対応しています。ただし、サロゲートペアには非対応です。

構築子と解体子

nn::nex::String::String ( )

コンストラクタです。

空文字列がセットされます。動的なメモリ確保は伴いません。

nn::nex::String::String ( const qChar8 szString)

コンストラクタです。

引数
[in]szStringqChar8 型のANSI形式の文字列。内部で各文字が qWideChar 型に変換されます。
nn::nex::String::String ( const qWideChar szString)

コンストラクタです。

引数
[in]szStringqWideChar 型の文字列。
nn::nex::String::String ( const String oString)

コピーコンストラクタです。

引数
[in]oStringString オブジェクト。

関数詳解

String& nn::nex::String::operator= ( const qChar8 szString)

代入演算子です。

引数
[in]szStringqChar8 型の文字列。内部で qWideChar 型に変換されます。
String& nn::nex::String::operator= ( const qWideChar szString)

代入演算子です。

引数
[in]szStringqWideChar 型の文字列。
String& nn::nex::String::operator= ( const String oString)

代入演算子です。

引数
[in]oStringString オブジェクト。
String& nn::nex::String::operator+= ( const String strString)

複合代入演算子です。文字列を結合します。

引数
[in]strStringString オブジェクト。
qBool nn::nex::String::operator== ( const String oString) const

比較演算子です。

引数
[in]oString比較する String オブジェクト。
qBool nn::nex::String::operator== ( const qChar szString) const

比較演算子です。

引数
[in]szString比較する String オブジェクト。
qBool nn::nex::String::operator!= ( const String oString) const

比較演算子です。

引数
[in]oString比較する String オブジェクト。
qBool nn::nex::String::operator!= ( const qChar szString) const

比較演算子です。

引数
[in]szString比較する String オブジェクト。
qBool nn::nex::String::operator< ( const String oString) const

比較演算子です。

引数
[in]oString比較する String オブジェクト。
qBool nn::nex::String::operator<= ( const String oString) const

比較演算子です。

引数
[in]oString比較する String オブジェクト。
qBool nn::nex::String::operator> ( const String oString) const

比較演算子です。

引数
[in]oString比較する String オブジェクト。
qBool nn::nex::String::operator>= ( const String oString) const

比較演算子です。

引数
[in]oString比較する String オブジェクト。
String nn::nex::String::Truncate ( size_t  uiLength) const

指定した文字列長以降を切り捨てた String オブジェクトを作成します。

引数
[in]uiLength文字列長
戻り値
指定した文字列長以降を切り捨てた String オブジェクト
const qChar* nn::nex::String::CStr ( ) const

文字列を C 形式のポインタで返します。

戻り値
文字列の C 形式のポインタ
qChar* nn::nex::String::GetBufferPtr ( )

オブジェクト内部の文字列バッファを返します。

戻り値
文字列バッファ
const qChar* nn::nex::String::GetBufferPtr ( ) const

オブジェクト内部の文字列バッファを返します(const版)。

戻り値
文字列バッファ
void nn::nex::String::Swap ( String rhs)

オブジェクト内部の情報を入れ替えます。

引数
[in]rhs入れ替える対象のオブジェクト。
void nn::nex::String::Reserve ( size_t  length)

指定した文字列長分の文字列を格納できるメモリを事前を確保します。

内部の文字列はそのまま保持されます。もし length 分の文字列を確保可能なバッファをすでに持っている場合は何も行いません。

引数
[in]length文字列長。(終端含まない)
参照
String::Capacity()
size_t nn::nex::String::Capacity ( ) const

メモリの再割り当てなしで保持可能な文字列長を取得します。

戻り値
メモリの再割り当てなしで保持可能な文字列長。(終端含まない)
参照
String::Reserve()
void nn::nex::String::CreateCopy ( qChar8 **  szCopy) const

文字列のコピーを作成します。

引数で与えられたポインタに文字列長分のメモリを確保し、コピーします。 内部で ANSI 形式に変換するため、元の文字列が ANSI 形式に変換できる必要があります。

本関数で生成した文字列は、 ReleaseCopy() で開放してください。

引数
[out]szCopyqChar8 の C 形式文字列へのポインタ
static void nn::nex::String::ReleaseCopy ( qChar8 szCopy)
static

文字列を解放します。

CreateCopy() でコピーした文字列に対して使用してください。

引数
[in,out]szCopyqChar8 の C 形式文字列
size_t nn::nex::String::CopyString ( qChar8 pCopy,
size_t  size 
) const

文字列のコピーを作成します。

引数で与えられたポインタに文字列をコピーします。あらかじめメモリが確保されている必要があります。 内部で ANSI 形式に変換するため、元の文字列が ANSI 形式に変換できる必要があります。 size が 0 以外の場合は、必ず \0 で終端されます。

引数
[out]pCopyqChar8 の C 形式文字列領域へのポインタ。
[in]size文字列領域のサイズ ( 終端の \0 を含む ) 。*pCopy の型換算の長さ(バッファサイズ / 型サイズ)です。)
戻り値
コピーした文字列領域のサイズ。 *pCopy の型換算の長さ(バッファサイズ / 型サイズ)です。 終端の \0 を含みます。 変換失敗時には0となり、 pCopy 先頭に \0 が入ります。
void nn::nex::String::CreateCopy ( qWideChar **  szCopy) const

文字列のコピーを作成します。

引数で与えられたポインタに文字列長分のメモリを確保し、コピーします。

本関数で生成した文字列は、 ReleaseCopy() で開放してください。

引数
[out]szCopyqWideChar の C 形式文字列へのポインタ
static void nn::nex::String::ReleaseCopy ( qWideChar szCopy)
static

文字列を解放します。

CreateCopy() でコピーした文字列に対して使用してください。

引数
[in,out]szCopyqWideChar の C 形式文字列
size_t nn::nex::String::CopyString ( qWideChar pCopy,
size_t  size 
) const

文字列のコピーを作成します。

引数で与えられたポインタに文字列をコピーします。あらかじめメモリが確保されている必要があります。

size が 0 以外の場合は、必ず \0 で終端されます。

引数
[out]pCopyqWideChar の C 形式文字列領域へのポインタ。
[in]size文字列領域のサイズ ( 終端の \0 を含む ) 。*pCopy の型換算の長さ(バッファサイズ / 型サイズ)です。)
戻り値
コピーした文字列領域のサイズ。 *pCopy の型換算の長さ(バッファサイズ / 型サイズ)です。 終端の \0 を含みます。
template<typename CharT >
LiteralStringHolder<CharT> nn::nex::String::GetLiteralStringAs ( ) const

テンプレート引数で指定した型で文字列を取得します。

本関数呼び出し後に String::LiteralStringHolder<CharT>::CStr() を呼び出すことで、任意の文字列型で内部値を取得できます。 String::CStr() は qChar 型を返しますが、それ以外の型で文字列を取得したい場合に使用してください。 例えば、 obj.GetLiteralStringAs<qChar8>.CStr() と呼び出すことで const qChar8* を受け取る関数の引数に文字列を渡すことが出来ます。 テンプレート引数には qChar8、qChar16、qWideChar などの文字列型を指定できます。

戻り値
テンプレート引数で指定した型の文字列を格納したオブジェクト。 その後 String::LiteralStringHolder<CharT>::CStr() を呼び出して文字列型を取得してください。
size_t nn::nex::String::GetLength ( ) const

文字列長を返します。NULL 終端は含みません。

戻り値
NULL 終端を含まない文字列長
qBool nn::nex::String::Empty ( ) const

文字列長が 0 なら true を返します。

戻り値
文字列長が 0 かどうか。
qInt nn::nex::String::FindSubstringCase ( const qChar szSubstring,
qInt  poi = 0 
) const

文字列を検索します。大文字と小文字は区別されます。

引数
[in]szSubstring検索文字列
[in]poi開始位置 0は先頭 (省略時0)
戻り値
最初にマッチした文字列の開始位置。 0は先頭。存在しない場合は -1 を返します。
qInt nn::nex::String::FindSubstringNoCase ( const qChar szSubstring) const

文字列を検索します。大文字と小文字の区別はしません。

引数
[in]szSubstring検索文字列
戻り値
最初にマッチした文字列の開始位置。 存在しない場合は -1 を返します。
qBool nn::nex::String::ContainsCase ( const String strSubstr) const

引数の文字列を含むかどうかを返します。大文字と小文字は区別されます。

引数
[in]strSubstr検索文字列


戻り値一覧:

true 検索文字列を含む

false 検索文字列を含まない

qBool nn::nex::String::ContainsNoCase ( const String strSubstr) const

引数の文字列を含むかどうかを返します。大文字と小文字の区別はしません。

引数
[in]strSubstr検索文字列


戻り値一覧:

true 検索文字列を含む

false 検索文字列を含まない

static int nn::nex::String::ByteArrayToBase64 ( const qByte pbSrc,
size_t  uiSrcLength,
qChar szADest,
size_t  uiDestLength 
)
static

入力バイナリデータを base64 形式の qChar 文字列に変換します。

szADest に NULL を指定した場合、変換を行わず、変換に必要な szADest のサイズを返します。必要サイズはNULL終端文字に必要な領域分を含みます。

引数
[in]pbSrc入力データへのポインタ
[in]uiSrcLength入力データのサイズ
[out]szADestbase64 形式文字列の出力先バッファへのポインタ。変換に成功すると末尾にNULL終端文字が付与されます。
[in]uiDestLengthszADest で示されるバッファのサイズ(NULL終端文字分を含む)
戻り値
変換に成功したかどうか、成功した場合は変換後の文字列長を返します
戻り値一覧:

-1 変換失敗(出力バッファのサイズ不足)

それ以外 変換後の文字列長

static int nn::nex::String::Base64ToByteArray ( const qChar szASrc,
size_t  uiSrcLength,
qByte pbDest,
size_t  uiDestLength 
)
static

base64 形式の文字列からバイナリデータに変換します。

pbDest に NULL を指定した場合、変換を行わず、変換に必要な pbDest のサイズ(理論値)を返します。

引数
[in]szASrc入力 base64 形式文字列へのポインタ。
[in]uiSrcLength入力 base64 形式文字列の長さ。4の倍数である必要があります。NULL終端文字列は含みません。
[out]pbDest出力データ格納先バッファへのポインタ
[in]uiDestLengthpbDest で示されるバッファのサイズ
戻り値
変換に成功したかどうか、成功した場合は変換後のバイナリデータ長を返します
戻り値一覧:

-1 変換失敗(出力バッファのサイズ不足)

それ以外 変換後のバッファサイズ

static int nn::nex::String::Base64ToByteArray ( const String strSrc,
qByte pbDest,
size_t  uiDestLength 
)
static

base64 形式の文字列からバイナリデータに変換します。

pbDest に NULL を指定した場合、変換を行わず、変換に必要な pbDest のサイズ(理論値)を返します。

引数
[in]strSrc入力 base64 形式文字列
[out]pbDest出力データ格納先バッファへのポインタ
[in]uiDestLengthpbDest で示されるバッファのサイズ
戻り値
変換に成功したかどうかを返します
戻り値一覧:

-1 変換失敗(出力バッファのサイズ不足。base64 形式の文字列ではない)

それ以外 変換後のバッファサイズ