LlDeleteSubString/ja

From Second Life Wiki

メインページ > LlDeleteSubString > LlDeleteSubString/ja
Jump to: navigation, search

関数: string llDeleteSubString( string src, integer start, integer end );

src のうち start 文字目から end 文字目までの範囲を取り除いた文字列のstring値を返します。

• string src
• integer start start index
• integer end end index

startend には負のインデックスを使用できます。
start および end の位置にある文字も削除されます。
先頭文字は 0 文字目です。
全角文字も 1 文字として数えます。

仕様

インデックス
先頭 0 -length
末尾 length - 1 -1

Indexes

  • 正のインデックスは先頭から数えます。先頭の要素は 0、末尾の要素は (length - 1) のインデックスを持ちます。
  • 負のインデックスは末尾から数えます。先頭の要素は -length、末尾の要素は -1 のインデックスを持ちます。

警告

  • start あるいは end が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。

 
default
{
    state_entry()
    {
        string ex = "abcdefghi";
        llDeleteSubString(ex, 4, 7); //この方法は間違い!
    }
}

 
default
{
    state_entry()
    {
        string ex = "abcdefghi";
        ex = llDeleteSubString(ex, 4, 7); //正しい方法
        llSay(0, ex); //"abcdi" と表示される。
    }
}
 

 
//-- special case
default
{
    state_entry()
    {
        string ex = "abcdefghi";
        llSay( 0, llDeleteSubString(ex, 4, 7) ); //"abcdi" と表示される。
        //-- 出力だけして 'ex' の内容を変えたくない場合はこの方法も良いでしょう。
    }
}
 

ノート

範囲とインデックス

インデックス範囲の説明を容易にするため、まず全てのインデックスを正 (プラス) に変換してください。負のインデックスは先頭でなく末尾から数えたもので、負のインデックスは全て対応する正のインデックスを (範囲に収まる限りは) 持ちます。末尾 (最後のインデックス) を過ぎた正のインデックス、先頭 (最初のインデックス) より前の負のインデックスは有効で、その結果は予測可能かつ信頼できます。すなわち、その要素はあたかも存在するかのように扱われますが、それは出力されるまでの間に限ります。

  • start <= end の場合、範囲は start から end となります。 [start, end]
  • start > end の場合、範囲は 0 から end、および start から -1 となります。 [0, end] + [start, -1]
    • end が先頭より前の負のインデックスの場合、範囲は [start, -1] となります。
    • end が末尾より後の正のインデックスの場合、範囲は [0, end] となります。
    • startend がいずれも有効な範囲から外れていた場合、関数は処理すべき範囲を持たないことになります。(事実上、関数の呼び出しは無駄になります。)

詳細は負のインデックスを参照してください。インデックスはゼロから開始されます。従って start, end ともに 0 を指定した場合、最初の一文字だけ削除されます。負のインデックスは、末尾から先頭に向かって数えてゆきます。従って -1 は末尾の一文字を指すのに便利です。インデックスは正/負を取り混ぜて使えます。従って例えば位置指定の start, end にそれぞれ 0, -1 を指定した場合、文字列全体が削除されます。

文字列の長さを確かめたい場合は llStringLength を使ってください。

文字列から特定のキーワードだけ削除したいという場合、llSubStringIndex を使うのがオーソドックスですが、Strife Onizuka が作成したライブラリ str_replace で簡便に済ますこともできます。

この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。
Personal tools
In other languages