Stringクラス
文字列を扱うクラスです。
クラスの機能
メンバ・プロパティ
Length
Function Length() As Long
Stringが保持している文字列の長さを表しています。基本的に書き換えないでください。
メソッド
コンストラクタ
Stringインスタンスを初期化します。
Sub String()
(デフォルトコンストラクタ)空文字列を作ります。
Sub String(initStr As PCWSTR, length As Long) Sub String(initStr As PCSTR, length As Long)
initStrで示される内容で文字列を作ります。長さはlengthで指定します。
Sub String(initStr As PCWSTR) Sub String(initStr As PCSTR)
initStrで示される内容で文字列を作ります。ヌル文字で愁嘆しているとして扱われます。
Sub String(initStr As String)
initStrの複製を作ります。
Sub String(initChar As StrChar, length As Long)
ReSize(length, initChar)を行います。
デストラクタ
Stringインスタンスの破壊時に呼ばれます。
Sub ~String()
StrPtr
文字列へのポインタを返します。
Function StrPtr() As *StrChar
Charsを返します。
*StrChar変換演算子
文字列へのポインタを得ます。
Function Operator () As *StrChar
StrPtr()呼び出しと等価です。
Insert
文字列を挿入します。
Const Function Insert(startIndex As Long, str As String) As String
startIndex文字目の後にlpszTextの内容を挿入した文字列を生成して返します。
Remove
文字列を削除します。
Const Function Remove(startIndex As Long) As String Const Function Remove(startIndex As Long, count As Long) As LString
- 1番目の形式では、startIndexで指定した位置から文字列末尾までを削除した文字列を生成して返します。
- 2番目の形式では、startIndexで指定した位置からcountで指定した数の文字列を削除した文字列を生成して返します。
Replace
文字列の置換を行います。
Const Function Replace(oldChar As StrChar, newChar As StrChar) As String Const Function Replace(oldStr As String, newStr As String) As String
- 1番目の形式では、このStringインスタンス内の文字oldCharをnewCharに置き換えた文字列を生成して返します。
- 2番目の形式では、このStringインスタンス内の文字列oldStrをnewStrに置き換えた文字列を生成して返します。
使用例
Dim s = "でてこいでてこいいいけのこい" Print s.Replace("こい", "いけ")
出力
でていけでていけいけのいけ
加算演算子・連結演算子
文字列を連結します。
Const Function Operator + (str As PCSTR) As String Const Function Operator + (str As PCWSTR) As String Const Function Operator + (str As String) As String Const Function Operator & (text As PCSTR) As String Const Function Operator & (text As PCWSTR) As String Const Function Operator & (objString As String) As String
このStringインスタンスとstrを連結した新しい文字列を返します。
- 1, 4番目の形式では、Concat(str, lstrlenA(str))と同じです
- 2, 5番目の形式では、Concat(str, lstrlenW(str))と同じです
- 3, 6番目の形式では、Concat(str, str.Length)と同じです。
Concat
この文字列と連結した新しい文字列を作ります。
Const Function Concat(str As *StrChar, length As Long) As String
- str
- この文字列と連結する文字列へのポインタを指定します。末尾にヌル文字が存在する必要はありません。
- length
- strが指す文字列の長さを指定します。
- 戻り値
- 連結した文字列を返します。
このStringインスタンス自身の内容が変更されることはありません。
Operator []
要素を読み取ります。
Const Function Operator[] (n As Long) As StrChar
n文字目の文字を返します。範囲外の場合動作は保障されません。
Contains
指定した文字列を検索します。
Const Function Contains(text As String) As Boolean
- text
- 検索する文字列を指定します。
- 戻り値
- CharsからlpszTextの文字列が見つかった場合、Trueを返します。見つからなかった場合、Falseを返します。また、textが空の文字列だった場合、常にTrueが返ります。
IndexOf
指定した文字列が最初に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。
Const Function IndexOf(text As String) As Long Const Function IndexOf(text As String, startIndex As Long) As Long Const Function IndexOf(text As String, startIndex As Long, count As Long) As Long
- text
- 検索する文字列を指定します。
- startIndex
- 検索を開始する位置を指定します。省略した場合、文字列の先頭から検索されます。
- count
- どこまでを検索するか、開始位置からの文字数で指定します。省略した場合、文字列の末尾まで検索されます。
- 戻り値
- 検索した文字列が見つかった場合、その位置が返ります。見つからなかった場合-1が返ります。また、lpszTextに空の文字を指定した場合、startIndexが返ります。
文字列の位置は0から始まります。
LastIndexOf
指定した文字列が最後に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。
Const Function LastIndexOf(text As String) As Long Const Function LastIndexOf(text As String, startIndex As Long) As Long Const Function LastIndexOf(text As String, startIndex As Long, count As Long) As Long
- text
- 検索する文字列を指定します。
- startIndex
- 検索を開始する位置を指定します。省略した場合、文字列の末尾から検索されます。
- count
- どこまでを検索するか、開始位置からの文字数で指定します。省略した場合、文字列の先頭まで検索されます。
- 戻り値
- 検索した文字列が見つかった場合、その位置が返ります。見つからなかった場合-1が返ります。また、lpszTextに空の文字を指定した場合、startIndexが返ります。
文字列の位置は0から始まります。また、検索は開始位置から文字列の先頭に向かいます。
StartsWith
先頭の文字列が、指定した文字列と一致しているか調べます。
Function StartsWith(lpszText As *StrChar) As Boolean
- lpszText
- 一致するか調べる文字列を指定します。
- 戻り値
- Charsの先頭がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。
EndsWith
末尾の文字列が、指定した文字列と一致しているか調べます
Const unction EndsWith(lpszText As String) As Boolean
- lpszText
- 一致するか調べる文字列を指定します。
- 戻り値
- Charsの末尾がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。
Substring
指定した範囲の文字列を取得します。
Const Function Substring(startIndex As Long) As String Const Function Substring(startIndex As Long, length As Long) As String
- startIndex
- 開始位置を指定します。
- length
- 取得する範囲を、文字列の長さでしていします。省略した場合、文字列の最後までになります。
- 戻り値
- 指定した範囲の文字列が、Stringオブジェクトで返ります。
文字列の位置は0から始まります。
ToLower
文字列を全て小文字に変換します。
Const Function ToLower() As String
- 戻り値
- Charsの文字列の全て小文字に変換した文字列。
現在のところ変換の対象になるのはアルファベットのみです。
ToUpper
文字列を全て大文字に変換します。
Const Function ToUpper() As String
- 戻り値
- Charsの文字列の全て大文字に変換した文字列。
現在のところ変換の対象になるのはアルファベットのみです。
IsNullOrEmpty
文字列が空またはNULLかを調べます。
Static Function IsNullOrEmpty(s As String) As Boolean
- 戻り値
- sがNothingであるかs.Lengthが0ならばTrueが返ります。それ以外はFalseです。
GetHashCode
Object クラスからのオーバーライドでハッシュ値を返します。
Override Function GetHashCode() As Long
- 戻り値
- ハッシュ値を返します。
この値は、将来に渡って同じである保障はありません。
ToString
Object クラスからのオーバーライドです。
Override Function ToString() As String
- 戻り値
- Thisを返します。
備考
文字列の末尾には、従来のABの文字列やC/C++などと同様、常にヌル文字(Asc(Ex"\0")あるいは単に0)が付きます。Length > 0のとき、StrPtr[Length]は0です。この要素を読み取ることは可能です。なお、文字列中にヌル文字が含まれても構いません。
※範囲外のエラーは未実装です。
StrChar 型
StringはStrChar型の配列として文字を保持します。StrChar型は場合によってマルチバイト文字 (日本語環境のWindowsではShift_JIS)かワイド文字 (UTF-16LE)のどちらかに切り替わります。
- UNICODEが定義されている(プロジェクトオプションで指定されている)場合
- 常にワイド文字になります。
- UNICODEが定義されておらず、__STRING_IS_NOT_ALWAYS_UNICODEも定義されていない場合
- ワイド文字になります。このとき__STRING_UNICODE_WINDOWS_ANSIが定義されます。
- UNICODEが定義されておらず__STRING_IS_NOT_ALWAYS_UNICODEが定義されている場合
- マルチバイト文字になります。このとき__STRING_IS_NOT_UNICODEが定義されます。
__STRING_UNICODE_WINDOWS_ANSIが定義されている状態では、Char/TCHARとStrCharは異なる大きさになることに注意してください。