LlStringLength/ja
		
		
		
		
		
		Jump to navigation
		Jump to search
		
  
    
		
	
| LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル | 
要約
関数: integer llStringLength( string str );警告
- 末尾の文字のインデックス番号は文字列長と一致しません。
- 文字のインデックスは 0 から始まります (先頭の文字のインデックスが 0 になります) 。
 
サンプル
// 前提: 
//    オブジェクト名: LSLWiki
//    スクリプト名: _lslwiki
default
{
    state_entry()
    {
        string HowLongAmI = "123";
        integer strlen = llStringLength(HowLongAmI);
        llOwnerSay( "'" + HowLongAmI + "' は " +(string) strlen + " 文字です。");
        // オブジェクト LSLWiki のオーナーには以下のように表示されます。
        // LSLWiki: '123' は 3 文字です。
    }
}
integer getStringBytes(string msg){
    string s = llEscapeURL(msg);
    string t = (string)llParseString2List(s,["%"],[]);
    return llStringLength(t) * 2 - llStringLength(s);
}
- 複数バイト文字を含む文字列のバイト数を得る
- msg と s のバイト数を次のように書くと:
- mb(msgのバイト数) = nb(置き換わらないバイト数) + bb(置き換わる前のバイト数)
- sb(sのバイト数) = nb + ab(置き換わった後のバイト数)
 
- ここで、
- ab = bb * 3 (各1バイト例えば '#' は、置き換わって 3 バイトの "%23" に)
 
- なので、
- mb = sb - bb * 2
 
- s 中の置き換わった全部が "%xx"(x:0-9またはA-F) の形になっているので、bb = s の中の '%'の数
- '%' を数えるため、s から '%' を除いた文字列 t を作れば:
- bb = sb - tb(tのバイト数)
 
- (s を llParseString2List()で'%'を除きながらリストに分解して、型キャストでまた文字列に戻して t とします。)
- これで求める答は:
- mb = sb - (sb - tb) * 2 = tb * 2 - sb
 
- 参考ブログ:
関連項目
関数
| • | llGetListLength | 
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。