文字列(string)
文字列の取り扱い
string は、文字列を表現する組み込み型です。
"Vket Cloud"
のように、ダブルクォーテーション「"」で囲まれた文字列は string 型として扱われます。
string は、文字列データを内部的に UTF-8 のバイト列として保持しています。文字列としての長さを取得する場合は Length() メソッドを、バイト列そのものの長さを取得するには LengthByte() を使用します。
変更可能な文字列
HeliScriptの string は変更可能です。"[]" のインデックス指定による書き換えや、Append() といったメソッドで、文字列の内容を書き換えることができます。
stringのメソッド
ToInt()
public int ToInt()
文字列を整数値に変換します。変換に失敗した場合は 0 を返します。
Length()
public int Length()
文字列の長さを返します。
LengthByte()
public int LengthByte()
文字列を表現する、UTF-8 配列のバイト数を返します。
IsEmpty()
public bool IsEmpty()
文字列が空の場合は true を、そうでない場合は false を返します。
IndexOf(string)
public int IndexOf(string value)
引数で指定した文字列を検索し、見つかった場合はその文字列が最初に現れる位置を返します。検索対象の文字が見つからなかった場合は -1 を返します。
SubString(int, int)
public string SubString(int startIndex, int length)
文字列中の開始位置と長さを指定し、部分文字列を生成します。
Append(int)
public void Append(int value)
引数で指定した文字を、現在の文字列の末尾に追加します。
RemoveLast()
public void RemoveLast()
文字列の最後の1文字を削除します。
RemoveAt(int)
public void RemoveAt(int index)
引数で指定した位置の文字を、1文字削除します。
特殊な演算子
[ ] 演算子
文字列中の指定した位置にある文字を、int値として取得します。指定した位置への代入も可能です。
string text = "Hello!";
// 'H' を取得
int part = text[0];
// "Hello!" を "Hello?" に書き換える
text[text.Length() - 1] = '?';
+ 演算子
文字列を連結し、新しい文字列を生成します。
string text = "Vket";
// "VketCloud" を生成
string vketcloud = text + "Cloud";
// +=演算子で文字列そのものを置き換える
text += "Cloud";
% 演算子
一定の書式に沿ったテンプレート文字列に対し、引数として与えた多様な型の値を当てはめ、新たな文字列を生成します。
以下のサンプルコードのように、数値を文字列に変換することも可能です。
int n;
string s;
s = "%d" % n;
文字列中に、"%" で始まる書式文字列を配置することで、% 演算子の引数を順番に適用します。
- %d
- 整数値を表現する書式指定子です。
- %f
- 浮動小数点数を表現する書式指定子です。
- %s
- 文字列を表現する書式指定子です。
// 1 + 1 = 2
int answer = 2;
hsSystemOutput("1 + 1 = %d\n" % answer);
// VketCloud hello world!
string hello = "hello world!";
hsSystemOutput("VketCloud %s\n" % hello);
// "int value = myArray[99];"
hsSystemOutput("int %s = %s[%d];\n" % "value" % "myArray" % 99);