Difference between revisions of "Category:LSL String/ja"

From Second Life Wiki
Jump to navigation Jump to search
(Redirected page to Category:LSL 文字列)
Line 1: Line 1:
#Redirect [[:Category:LSL 文字列]]
{{Multi-lang}}
{{LSL Header/ja|ml=*}}
{{LSLC/ja|}}{{LSLC/ja|Types}}
{{RightToc}}
 
stringはテキストデータです。stringの長さは、有効な[[Script_memory/ja|スクリプト容量]]の限界までです。 Stringの値はLSLテキストを定義するときに、ダブルクォーテーション(" ")て囲まれます。いくつかの文字はエスケープされる必要があるだろうけれど、stringで用いることができるでしょう。
 
stringは'''+演算子'''を用いて結合させることができます。
 
<div id="box">
== Escape Codes==
<div style="padding: 0.5em;">
{|{{Prettytable|style=float:left;}}
|+
|-{{Hl2}}
!Substring
!Replaced with
|-
|| \t || 4スペース
|-
|| \n || 改行
|-
|| \" || ダブルクオーテーション
|-
|| \\ || バックスラッシュ
|}
{|
|String 例:
<source lang="lsl2">"Hello Avatar!"
"Yes"
"No"
"It's 10 o'clock."
"I am 21 years old!"
"Help " + "me"
EOF
 
//以下の2つのstringは同じ値です。
 
"I scream,\nyou scream,\nwe all scream,\nfor ice-cream!"
"I scream,
you scream,
we all scream,
for ice-cream!"
</source>
|}
</div></div>
 
Note: エスケープコード(上記一覧)はスクリプトがコンパイルされるときに翻訳され、動いてる間はされません。 stringはコンパイルされたとき、結果としてスクリプト内部の\nを"改行"文字に変換するでしょう。ノートカード、チャット、httpその他から読み込むテキストはエスケープコードではチェックされませんから、ノートカードでの\n入力は自動で"改行"文字には変換されません。自らしなければなりませんが、本当に本当に必要な場合だけにすべきです。
 
Note: CとJavaや同様な言語からLSLに入った人は、始めたばかりの間はLSL stringのエスケープルールで混乱するでしょう。 LSLの"\n"の意味は{{LSLG/ja|llUnescapeURL}}("%0A")で、CとJavaに似てますが、"\t"の意味は{{LSLG/ja|llUnescapeURL}}("%09")より{{LSLG/ja|llUnescapeURL}}("%20%20%20%20") が最適で、"\r"の意味は{{LSLG/ja|llUnescapeURL}}("%0D")よりも"r"が最適、などなど。
 
{{#vardefine:p_name_desc|変数名
}}{{#vardefine:p_value_desc|string 要素もしくは定型値
}}{{#vardefine:p_value_t_desc|要素もしくは定型値
}}
<div id="box">
== 変数: string {{LSL Param|name}}; ==
<div style="padding: 0.5em;">
<source lang="lsl2">string name;</source>
宣言するstring型の変数を'''name'''と名づけて、{{HoverText|""|空のstring}}にします。
{|
{{LSL DefineRow|variable|name|{{#var:p_name_desc}}}}
|}
</div></div>
 
<div id="box">
== 変数: string {{LSL Param|name}} {{=}} {{LSL Param|value}}; ==
<div style="padding: 0.5em;">
<source lang="lsl2">string name = value;</source>
宣言するstring型の変数を'''name'''と名づけて、'''value'''の値をいれます。
{|
{{LSL DefineRow|variable|name|{{#var:p_name_desc}}}}
{{LSL DefineRow|expression|value|{{#var:p_value_desc}}}}
|}
</div></div>
 
<div id="box">
== [[Typecast/ja|型の変換]]: (string){{LSL Param|value_t|value}} ==
<div style="padding: 0.5em;">
<source lang="lsl2">(string)value</source>
'''value'''をstring型の値に変換します。
{|
{{LSL DefineRow|expression|value|{{#var:p_value_t_desc}}}}
|}
</div></div>
 
<div id="box">
 
== [[LSL Operators/ja|演算子]] ==
<div style="padding: 0.5em;">
ほかの情報は[[LSL Operators/ja|演算子]] を参照します。
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
=== 結合: {{LSL Param|value|value1}} + {{LSL Param|value|value2}} ===
<source lang="lsl2">(value1 + value2)</source>
入力での編集以外で、2つのstringを1つのstringに結合します。'''value2'''に '''value1'''を加えて、結果のstringに返します。
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value2|{{#var:p_value_desc}}}}
|}
</div>
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
 
=== 比較: {{LSL Param|value|value1}} <nowiki>==</nowiki> {{LSL Param|value|value2}} ===
<source lang="lsl2">(value1 == value2)</source>
2つのstringを比較して、同じ長さで同じ文字なら1を返し、そうでなければ0を返します。 この演算子はCの<code>!strcmp('''value1''', '''value2''')</code>と極めて似たような働きをし、従ってCやJavaでの == 演算子と直観的に異なる故に、技術的に異なるものです。
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value2|{{#var:p_value_desc}}}}
|}
</div>
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
=== 比較: {{LSL Param|value|value1}} != {{LSL Param|value|value2}} ===
<source lang="lsl2">(value1 != value2)</source>
2つのstringを比較し、同じ長さで同じ文字であれば{{HoverText|zero|0}}を返し、そうでなければ0ではないものを返します。 この演算子はCの<code>strcmp('''value1''', '''value2''')</code>と極めて似た働きをし、従ってCやJavaでの != 演算子と直観的に異なる故に、技術的に異なるものです。
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value2|{{#var:p_value_desc}}}}
|}
</div>
</div></div>
 
<div id="box">
== 例 ==
<div style="padding: 0.5em;">
<source lang="lsl2">integer int = 48934;
string str = (string)int;
string str_2;
str_2 = str;</source>
</div></div>
<div id="box">
== よく用いる関数 ==
<div style="padding: 0.5em;">
=== ユーザが作成したユーティリティ関数 ===
{|{{Prettytable}}
|+
|-{{Hl2}}
!関数
!説明
|-
|| [[Chr]] || Returns the Unicode character with the given code. See also [[Ord]].
|-
|| [[Float2String]] || Allows string output of a float in a tidy text format, with optional rounding.
|-
|| [[Left]] || Returns text left of a specified separator.
|-
|| [[Like]] || See if one word matches part of another.
|-
|| [[Ord]] || Returns the ordinal (Unicode code) of a character. See also [[Chr]].
|-
|| [[RandomString]] || Creates a random string.
|-
|| [[RemoveHTMLTags]] || Removes HTML tags from a string ( and newline characters )
|-
|| [[Right]] || Returns text right of a specified separator.
|-
|| [[Library_Combined_Library#str_replace|str_replace]] || 全ての対象string内の、stringインスタンスとその他のstringを置換します。
|-
|| [[Stristr]] || Returns a string from the first occurrence of needle to the end of haystack.
|-
|| [[SplitLine]] || '改行'エスケープコードをstringの特定の箇所に挿入します。
|-
|| [[Library_Combined_Library#TrimRight|TrimRight]] || stringの右端から文字の余計な空白を削除します。
|-
|| [[Library_Combined_Library#TrimLeft|TrimLeft]] || stringの左端から文字の余計な空白を削除します。
|-
|| [[Library_Combined_Library#TrimBoth|TrimBoth]] || stringの両端から文字の余計な空白を削除します。
|-
|| [[WrapText]] || Break text into line lengths of your specification.
|}
 
[[Library_Combined_Library|CombinedLibrary]]のString関数
 
=== スクリプトライブラリ内のテキスト関係のスクリプト ===
{| {{Prettytable}}
|-
|{{Hl2}}| '''スクリプト名'''
|{{Hl2}}| '''製作者'''
|{{Hl2}}| '''説明'''
|-
||[[ParseString2List]]
||[[User:Strife Onizuka|Strife Onizuka]]
||Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.
|-
 
||[[String Compare]]
||[[User:Xaviar Czervik|Xaviar Czervik]]
||Compares two strings and reliably returns either 1, -1, or 0 if they are the same.
|-
||[[XyText 1.5|XyText]]
||[[User:Xylor Baysklef|Xylor Baysklef]]
|| Display text (up to 10 characters) on a prim. Use as many prims as desired.
|-
||[[XyyyyzText|XyyyyzText]]
||[[User:Criz Collins|Criz Collins]]
|| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO
|-
||[[XyzzyText|XyzzyText]]
||[[User:Thraxis Epsilon|Thraxis Epsilon]] and [[User:Gigs Taggart|Gigs Taggart]]
|| Display text (up to 10 characters) on a prim. Way more efficient than XyText.
|}
</div>

Revision as of 16:59, 18 December 2015

stringはテキストデータです。stringの長さは、有効なスクリプト容量の限界までです。 Stringの値はLSLテキストを定義するときに、ダブルクォーテーション(" ")て囲まれます。いくつかの文字はエスケープされる必要があるだろうけれど、stringで用いることができるでしょう。

stringは+演算子を用いて結合させることができます。

Escape Codes

Substring Replaced with
\t 4スペース
\n 改行
\" ダブルクオーテーション
\\ バックスラッシュ
String 例:
"Hello Avatar!"
"Yes"
"No"
"It's 10 o'clock."
"I am 21 years old!"
"Help " + "me"
EOF

//以下の2つのstringは同じ値です。

"I scream,\nyou scream,\nwe all scream,\nfor ice-cream!"
"I scream,
you scream,
we all scream,
for ice-cream!"

Note: エスケープコード(上記一覧)はスクリプトがコンパイルされるときに翻訳され、動いてる間はされません。 stringはコンパイルされたとき、結果としてスクリプト内部の\nを"改行"文字に変換するでしょう。ノートカード、チャット、httpその他から読み込むテキストはエスケープコードではチェックされませんから、ノートカードでの\n入力は自動で"改行"文字には変換されません。自らしなければなりませんが、本当に本当に必要な場合だけにすべきです。

Note: CとJavaや同様な言語からLSLに入った人は、始めたばかりの間はLSL stringのエスケープルールで混乱するでしょう。 LSLの"\n"の意味はllUnescapeURL("%0A")で、CとJavaに似てますが、"\t"の意味はllUnescapeURL("%09")よりllUnescapeURL("%20%20%20%20") が最適で、"\r"の意味はllUnescapeURL("%0D")よりも"r"が最適、などなど。


変数: string name;

string name;

宣言するstring型の変数をnameと名づけて、""にします。

• variable name 変数名

変数: string name = value;

string name = value;

宣言するstring型の変数をnameと名づけて、valueの値をいれます。

• variable name 変数名
• expression value string 要素もしくは定型値

型の変換: (string)value

(string)value

valueをstring型の値に変換します。

• expression value 要素もしくは定型値

演算子

ほかの情報は演算子 を参照します。

結合: value1 + value2

(value1 + value2)

入力での編集以外で、2つのstringを1つのstringに結合します。value2value1を加えて、結果のstringに返します。

• expression value1 string 要素もしくは定型値
• expression value2 string 要素もしくは定型値

比較: value1 == value2

(value1 == value2)

2つのstringを比較して、同じ長さで同じ文字なら1を返し、そうでなければ0を返します。 この演算子はCの!strcmp(value1, value2)と極めて似たような働きをし、従ってCやJavaでの == 演算子と直観的に異なる故に、技術的に異なるものです。

• expression value1 string 要素もしくは定型値
• expression value2 string 要素もしくは定型値

比較: value1 != value2

(value1 != value2)

2つのstringを比較し、同じ長さで同じ文字であればzeroを返し、そうでなければ0ではないものを返します。 この演算子はCのstrcmp(value1, value2)と極めて似た働きをし、従ってCやJavaでの != 演算子と直観的に異なる故に、技術的に異なるものです。

• expression value1 string 要素もしくは定型値
• expression value2 string 要素もしくは定型値

integer int = 48934;
string str = (string)int;
string str_2;
str_2 = str;

よく用いる関数

ユーザが作成したユーティリティ関数

関数 説明
Chr Returns the Unicode character with the given code. See also Ord.
Float2String Allows string output of a float in a tidy text format, with optional rounding.
Left Returns text left of a specified separator.
Like See if one word matches part of another.
Ord Returns the ordinal (Unicode code) of a character. See also Chr.
RandomString Creates a random string.
RemoveHTMLTags Removes HTML tags from a string ( and newline characters )
Right Returns text right of a specified separator.
str_replace 全ての対象string内の、stringインスタンスとその他のstringを置換します。
Stristr Returns a string from the first occurrence of needle to the end of haystack.
SplitLine '改行'エスケープコードをstringの特定の箇所に挿入します。
TrimRight stringの右端から文字の余計な空白を削除します。
TrimLeft stringの左端から文字の余計な空白を削除します。
TrimBoth stringの両端から文字の余計な空白を削除します。
WrapText Break text into line lengths of your specification.

CombinedLibraryのString関数

スクリプトライブラリ内のテキスト関係のスクリプト

スクリプト名 製作者 説明
ParseString2List Strife Onizuka Same as llParseString2List and llParseStringKeepNulls, but not limited to 8 spacers or separators. Thus substitute a call to the llParseString2List and llParseStringKeepNulls functions by a call to ParseString2List whenever you have more than 8 separators or more than 8 spacers.
String Compare Xaviar Czervik Compares two strings and reliably returns either 1, -1, or 0 if they are the same.
XyText Xylor Baysklef Display text (up to 10 characters) on a prim. Use as many prims as desired.
XyyyyzText Criz Collins Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO
XyzzyText Thraxis Epsilon and Gigs Taggart Display text (up to 10 characters) on a prim. Way more efficient than XyText.