れむ
2008年03月28日 14:56
//============================================================================== // 文字列を置換します。 // source 対象の文字列 // search 置換される文字列 // replace 置換する文字列 // 戻り値 置換されたを返します。 //============================================================================== string str_replace(string source, string search, string replace) { integer len = llStringLength(search); integer index = llSubStringIndex(source, search); while (index >= 0) { source = llDeleteSubString(source, index, -1) + replace + llDeleteSubString(source, 0, index + len - 1); index = llSubStringIndex(source, search); } return source; } 【使用方法】 string str = str_replace("0123456789", "123", "zzz"); // str = "0zzz456789" string str = str_replace("0123401234", "123", "zzz"); // str = "0zzz40zzz4" //============================================================================== // 文字列を反復します。 // str 繰り返す文字列 // count 繰り返す回数 // 戻り値 繰り返した文字列を返します。 //============================================================================== string str_repeat(string str, integer count) { string s = ""; integer i; for (i = 0; i < count; i=-(~i)) { s += str; } return s; } // 件数が増えても高速 string str_repeat(string str, integer count) { string s1; string s2 = ""; integer i; while (count) { s1 = str; i = 0; while (count >> (i=-(~i))) { s1 += s1; } count -= (1 = 0; i=~(-i)) { s += llGetSubString(str, i, i); } return s; } // メモリ節約版 string str_reverse(string str) { integer len = llStringLength(str); integer i; for (i = len - 2; i >= 0; i=~(-i)) { str = llDeleteSubString(str, i, i) + llGetSubString(str, i, i); } return str; } 【使用方法】 string str = str_reverse("01234"); // str = "43210" //============================================================================== // 大文字小文字を区別しない文字列比較を行います。 // str1 文字列1 // str2 文字列2 // 戻り値 等しい場合はTRUEを返します。 //============================================================================== integer str_case_equal(string str1, string str2) { return llToLower(str1) == llToLower(str2); } 【使用方法】 integer result = str_case_equal("abc", "abc"); // result = TRUE integer result = str_case_equal("aBC", "AbC"); // result = TRUE