Difference between revisions of "LlGetSubString/ja"

From Second Life Wiki
Jump to navigation Jump to search
(Create)
 
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{LSL_Function/negative index/ja|true|start|end}}{{LSL_Function/ja
{{LSL_Function/negative index/ja|true|start|end}}{{LSL_Function/ja
|func_id=94|func_sleep=0.0|func_energy=10.0
|func_id=94|func_sleep=0.0|func_energy=10.0
|func=llGetSubString|return_type=string|p1_type=string|p1_name=src|p2_type=integer|p2_name=start|p3_type=integer|p3_name=end
|func=llGetSubString|p1_type=string|p1_name=src|p2_type=integer|p2_name=start|p3_type=integer|p3_name=end
|func_footnote
|func_footnote
|func_desc
|func_desc='''src''' の '''start''' 文字目から '''end''' 文字目までの範囲の文字列を string で返します。
|return_text='''src''' の '''start''' から '''end''' までの範囲の文字列
|func_footnote='''src''' の内容は保持されます。
|spec
|spec
|caveats
|caveats
|constants
|constants
|examples=
|examples=
<lsl>
<source lang="lsl2">
default
default
{
{
Line 24: Line 22:
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|also_functions=
|also_functions=
Line 32: Line 30:
|also_tests
|also_tests
|also_articles={{LSL DefineRow||[[Library_Combined_Library#str_replace|CombinedLibrary: str_replace]]}}
|also_articles={{LSL DefineRow||[[Library_Combined_Library#str_replace|CombinedLibrary: str_replace]]}}
|notes=インデックス番号はゼロから開始されます。従って start, end ともに 0 を指定した場合、最初の一文字だけが戻り値になります。負のインデックス番号は、末尾から先頭に向かって数えてゆきます。従って -1 は末尾の一文字を指すのに便利です。インデックス番号は正/負を取り混ぜて使えます。従って例えば位置指定の start, end にそれぞれ 0, -1 を指定した場合、文字列全体が戻り値になります。
|notes=インデックスはゼロから開始されます。従って start, end ともに 0 を指定した場合、最初の一文字だけが戻り値になります。負のインデックスは、末尾から先頭に向かって数えてゆきます。従って -1 は末尾の一文字を指すのに便利です。インデックスは正/負を取り混ぜて使えます。従って例えば位置指定の start, end にそれぞれ 0, -1 を指定した場合、文字列全体が戻り値になります。


文字列の長さを確かめたい場合は {{LSLG/ja|llStringLength}} を使ってください。
文字列の長さを確かめたい場合は {{LSLG/ja|llStringLength}} を使ってください。

Latest revision as of 13:35, 25 February 2016

要約

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

srcstart 文字目から end 文字目までの範囲の文字列を string で返します。

• string src
• integer start 開始インデックス
• integer end 終了インデックス

startend には 負のインデックス を使用できます。

仕様

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

インデックス

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

警告

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

サンプル

default
{
    state_entry()
    {
        string word = "Hello!";
        llOwnerSay(llGetSubString(word, 0, 0));
        // Object: H  と表示されます。
        llOwnerSay(llGetSubString(word, -1, -1));
        // Object: !  と表示されます。
        llOwnerSay(llGetSubString(word, 2, 3));
        // Object: ll  と表示されます。
    }
}

注意点

範囲とインデックス

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

  • 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 を使ってください。

関連項目

特記事項

Search JIRA for related Issues

Signature

function void llGetSubString( string src, integer start, integer end );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。