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

From Second Life Wiki
Jump to navigation Jump to search
Line 54: Line 54:
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
<pre>string name;</pre>
<pre>string name;</pre>
Declares a variable of type string named '''name''', with the value {{HoverText|""|empty string}}
宣言するstring型の変数を'''name'''と名づけて、{{HoverText|""|空の string}}にします。
{|
{|
{{LSL DefineRow|variable|name|{{#var:p_name_desc}}}}
{{LSL DefineRow|variable|name|{{#var:p_name_desc}}}}
Line 61: Line 61:


<div id="box">
<div id="box">
== Variable: string {{LSL Param|name}} {{=}} {{LSL Param|value}}; ==
== 変数: string {{LSL Param|name}} {{=}} {{LSL Param|value}}; ==
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
<pre>string name = value;</pre>
<pre>string name = value;</pre>
Declares a variable of type string named '''name''', with the value '''value'''.
宣言するstring型の変数を'''name'''と名づけて、'''value'''の値をいれます。
{|
{|
{{LSL DefineRow|variable|name|{{#var:p_name_desc}}}}
{{LSL DefineRow|variable|name|{{#var:p_name_desc}}}}
Line 72: Line 72:


<div id="box">
<div id="box">
== [[Typecast]]: (string){{LSL Param|value_t|value}} ==
== [[Typecast/ja|型の変換]]: (string){{LSL Param|value_t|value}} ==
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
<pre>(string)value</pre>
<pre>(string)value</pre>
Converts '''value''' to a value of type string.
'''value'''をstring型の値に変換します。
{|
{|
{{LSL DefineRow|expression|value|{{#var:p_value_t_desc}}}}
{{LSL DefineRow|expression|value|{{#var:p_value_t_desc}}}}
Line 83: Line 83:
<div id="box">
<div id="box">


== [[LSL Operators|Operators]] ==  
== [[LSL Operators/ja|演算子]] ==  
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
See [[LSL Operators|Operators]] for more information.
ほかの情報は[[LSL Operators/ja|演算子]] を参照します。
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
=== Combine: {{LSL Param|value|value1}} + {{LSL Param|value|value2}} ===
=== 結合: {{LSL Param|value|value1}} + {{LSL Param|value|value2}} ===
<pre>(value1 + value2)</pre>
<pre>(value1 + value2)</pre>
Combines two strings into a single string without modifying the inputs. Appends '''value2''' to '''value1''' and returns the resulting string.
入力での編集以外で、2つのstringを1つのstringに結合します。'''value2''''''value1'''を加えて、結果のstringに返します。
{|
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
Line 97: Line 97:
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">


=== Comparison: {{LSL Param|value|value1}} <nowiki>==</nowiki> {{LSL Param|value|value2}} ===
=== 比較: {{LSL Param|value|value1}} <nowiki>==</nowiki> {{LSL Param|value|value2}} ===
<pre>(value1 == value2)</pre>
<pre>(value1 == value2)</pre>
Compares two strings, returns {{HoverText|one|1}} if same length and same characters, else returns zero.
2つのstringを比較して、同じ長さで同じ文字なら1を返し、そうでなければ0を返します。
This operator works exactly like <code>!strcmp('''value1''', '''value2''')</code> in C, thus technically differs from the counterintuitive behavior of the == operator in C and in Java.
この演算子はCの<code>!strcmp('''value1''', '''value2''')</code>と極めて似たような働きをし、従ってCやJavaでの == 演算子と直観的に異なる故に、技術的に異なるものです。
{|
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
Line 107: Line 107:
</div>
</div>
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;">
=== Comparison: {{LSL Param|value|value1}} != {{LSL Param|value|value2}} ===
=== 比較: {{LSL Param|value|value1}} != {{LSL Param|value|value2}} ===
<pre>(value1 != value2)</pre>
<pre>(value1 != value2)</pre>
Compares two strings, returns {{HoverText|zero|0}} if same length and same characters, otherwise non-zero.
2つのstringを比較し、同じ長さで同じ文字であれば{{HoverText|zero|0}}を返し、そうでなければ0ではないものを返します。
This operator works exactly like <code>strcmp('''value1''', '''value2''')</code> in C, thus technically differs from the counterintuitive behavior of the != operator in C and in Java.
この演算子はCの<code>strcmp('''value1''', '''value2''')</code>と極めて似た働きをし、従ってCやJavaでの != 演算子と直観的に異なる故に、技術的に異なるものです。
{|
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
Line 120: Line 120:
<div id="box">
<div id="box">


== Examples ==
== ==
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
<pre>
<pre>
Line 130: Line 130:
</div></div>
</div></div>
<div id="box">
<div id="box">
== Useful Functions ==
== よく用いる関数 ==
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
=== String functions in the [[Library_Combined_Library|CombinedLibrary]] ===
=== [[Library_Combined_Library|CombinedLibrary]]のString関数 ===
{|
{|
{{LSL DefineRow||[[Library_Combined_Library#str_replace|str_replace]]|replace all instances of a string with another string in a target string.}}
{{LSL DefineRow||[[Library_Combined_Library#str_replace|str_replace]]|全ての対象string内の、stringインスタンスとその他のstringを置換します。}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimRight]]|Trim characters from the right end of a string}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimRight]]|stringの右端から文字の余計な空白を削除します。}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimLeft]]|Trim characters from the left end of a string}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimLeft]]|stringの左端から文字の余計な空白を削除します。}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimBoth]]|Trim characters from the both ends of a string}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimBoth]]|stringの両端から文字の余計な空白を削除します。}}
|}
|}
=== Examples ===
=== ===
{|
{|
{{LSL DefineRow||[[Examples|SplitLine]]|Insert 'new line' escape codes at certain positions of a string}}
{{LSL DefineRow||[[Examples|SplitLine]]|'改行'エスケープコードをstringの特定の箇所に挿入します。}}
|}
|}
</div></div>
</div></div>

Revision as of 15:46, 2 January 2008

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

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

エスケープコード
部分文字 置換されるもの
\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;

よく用いる関数

CombinedLibraryのString関数

•  str_replace 全ての対象string内の、stringインスタンスとその他のstringを置換します。
•  TrimRight stringの右端から文字の余計な空白を削除します。
•  TrimLeft stringの左端から文字の余計な空白を削除します。
•  TrimBoth stringの両端から文字の余計な空白を削除します。

•  SplitLine '改行'エスケープコードをstringの特定の箇所に挿入します。