コンテンツにスキップ

文字列(string)

文字列の取り扱い

string は、文字列を表現する組み込み型です。

"Vket Cloud" のように、ダブルクォーテーション「"」で囲まれた文字列は string 型として扱われます。

string は、文字列データを内部的に UTF-8 のバイト列として保持しています。文字列としての長さを取得する場合は Length() メソッドを、バイト列そのものの長さを取得するには LengthByte() を使用します。

変更可能な文字列

HeliScriptの string は変更可能です。"[]" のインデックス指定による書き換えや、Append() といったメソッドで、文字列の内容を書き換えることができます。

Note

現バージョンにおいて、文字列にアポストロフィ / シングルクォート( ' ' , U+0027)を含めると動作が停止するエラーが確認されております。
恐れ入りますが、文字列では同記号の使用を避けるようお願い致します。

stringのメソッド

ToInt()

public int ToInt()

文字列を整数値に変換します。変換に失敗した場合は 0 を返します。

ToFloat()

public float ToFloat()

文字列を浮動小数点数値に変換します。変換に失敗した場合は 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文字削除します。

Split()

public list<string> Split()

空白文字で文字列を分割し、結果を文字列のリストとして返します。

空白文字に該当するのは以下の値です。

  • 空白 (0x20, ' ')
  • フォームフィード (0x0c, '\f')
  • ラインフィード (0x0a, '\n')
  • キャリッジリターン (0x0d, '\r')
  • 水平タブ (0x09, '\t')
  • 垂直タブ (0x0b, '\v')

Split(int)

public list<string> Split(int opt)

空白文字で文字列を分割し、結果を文字列のリストとして返します。

引数にオプション値を渡すことで、分割時の挙動を変更できます。

Split(string)

list<string> Split(string separator)

引数 separator によって文字列を分割し、結果を文字列のリストとして返します。

Split(string, int)

list<string> Split(string separator, int opt)

引数 separator によって文字列を分割し、結果を文字列のリストとして返します。

引数にオプション値を渡すことで、分割時の挙動を変更できます。

分割オプション

SplitOpt_None

const int SplitOpt_None = 0;

オプションとして何も行わない。

SplitOpt_RemoveEmpty

const int SplitOpt_RemoveEmpty = 1;

分割後の文字列に空文字が含まれる場合、それを破棄する。

SplitOpt_Trim

const int SplitOpt_Trim = 2;

分割後の文字列の前後に空白が存在する場合、それらをトリムする。

SplitOpt_RemoveAll

const int SplitOpt_RemoveAll = SplitOpt_RemoveEmpty | SplitOpt_Trim;

分割オプションの SplitOpt_RemoveEmpty と SplitOpt_Trim を組み合わせた値。


特殊な演算子

[ ] 演算子

文字列中の指定した位置にある文字を、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);