VEXでの文字列操作

文字が含まれているかチェック

string name = "abcdefghijk";

int flag = find(name, "cdef");

printf(sprintf('%g', flag) + '\n');
// 2

find関数で文字列に特定の文字が含まれているかチェックしている。なければマイナスの値が返る。

文字を入れ替える

string name = "abc_def";
name = re_replace("abc_", "", name);

printf(sprintf('%g', name) + '\n');
// def

re_replace関数を使い、abc_という文字列を空白と入れ替えて消去している。

正規表現を使って入れ替える

string name = "abc(defghi)jk";
name = re_replace(r"\(.*\)", "", name);

printf(sprintf('%g', name) + '\n');
// abcjk

(abcd)のような括弧に囲まれた文字列をそのまま消している。「(」はメタ文字なので 「 \ 」 を前につける。なんでもいい連続した文字は 「 .* 」 になる。

文字を分割する

string path = "abc/def/ghi";
string char[] = split(path, "/");

printf(sprintf('%g', char) + '\n');
// {abc, def, ghi}

Split関数でスラッシュを分割する。

数字の桁をそろえる

int digit = 2;
float coef = pow(10, digit);
float value = rint(3.14159 * coef) / coef;
s@value = sprintf("%d", value);

3.14159は3.14の小数点第二位に丸められる。

タイトルとURLをコピーしました