Tonyu System 1 - wiki


命令リファレンスWikiトップ

Stringクラス

文字列を表すオブジェクトです

演算子

文字列結合(+)文字列と他の文字列を連結します
文字列比較(==)文字列と他の文字列の内容が一致しているかを調べます

コンストラクタ

new Stringキャラクタコードをあらわす数値から、文字列を作成します。

メソッド一覧

byteLength文字列のバイトデータの長さを得ます。
substring文字列の一部を抜き出します。
length文字列の長さを得ます。
byteSubstringsubstringと似ていますが、全角文字を2文字として数えます。
byteAt文字列のバイトデータの特定の場所におけるキャラクタコードを得ます。
charAt文字列からiバイト目のキャラクタコードをぬきだします
splitカンマ(",")などで区切られた文字列("abc,def,efg"など)を配列に分解します。

文字列結合

演算子 +を用いて、文字列と他の文字列を連結します

例1

extends SpriteChar;
a="山"
b="川";
c=a+"と"+b;
print(c);

コンソールに"山と川" が表示されます"

例2

extends SpriteChar;
score=100+200;
print("score="+score);

▲ コンソールに"score=300" が表示されます。
この例のように、文字列と数値を連結することが可能です。

注意点

演算子 + は、両辺の値の種類によって意味が変わってきます。
次の例をためしてください。

例3

extends SpriteChar;
print("score="+100+200); // A
print("score="+(100+200)); // B
print(100+200+"=score"); // C

コンソールは次のように表示されます。

score=100200
score=300
300=score

動作をまとめると次のようになります。

  • + の両辺のうち少なくとも一方が文字列の場合、演算の結果は文字列となる。文字列でないほうの値はその値の文字列表現に変換される。
  • + の両辺が数値の場合、演算の結果は数値となる。数値同士の足し算を行う。
  • + で連結された値が3つ以上ある場合、左から計算する。ただし括弧でくくられたものを先に計算する

上の例では次のような計算が行われています。

print("score="+100+200); // A

まず、"score="+100 を計算し、結果が"score=100"になる。
さらに"score=100"+200 を計算し、結果が"score=100200"になる。

print("score="+(100+200)); // B

まず、(100+200)を計算し、結果が300(数値)になる
さらに"score="+300 を計算し、結果が"score=300"になる。

print(100+200+"=score"); // C

まず、100+200を計算し、結果が300(数値)になる
さらに300+"=score" を計算し、結果が"300=score"になる。


文字列比較

==演算子を用いて、 文字列と他の文字列の内容が一致しているかを調べます

例1

extends SpriteChar;
a="abc";
if (a=="abc") print(a+" と abc は等しい");
else print(a+" と abc は等しくない");
if (a=="def") print(a+" と def は等しい");
else print(a+" と def は等しくない");

コンソールは次のように表示されます。

abc と abc は等しい
abc と def は等しくない

new String

キャラクタコードをあらわす数値から、文字列を作成します。

例1

a=new String(35);

▲ aの値は、キャラクタコード35の文字(#) からなる文字列 "#" になります。


String.byteLength

文字列のバイトデータの長さを得ます。

書式

byteLength()

戻り値

全角文字を2文字とした、文字列の長さ

lengthメソッドと似ていますが、全角文字を2文字として数えます。


String.substring

文字列の一部を抜き出します。

書式

substring(b,e)
  • b
     抜き出し開始位置。先頭を0として、全角文字も1と数える
  • e(省略可能)
     抜き出し終了位置。この位置の1文字手前までが抜き出される。省略した場合は最後まで

戻り値

b,eによって指定された範囲内の文字列を返します。

例1

メニューの「ウィンドウ」>「コンソール」でコンソールウィンドウを表示し、さらに
メニューの「ウィンドウ」>「テスト実行」で表示されるウィンドウに次のように入力し
F9をおします

a="105円です";
b=a.substring(2); 
c=a.substring(2,4);
print(b);
print(c);

▲ コンソールは次のように表示されます。

5円です
5円

String.length

文字列の長さを得ます。

書式

length()

戻り値

文字列の長さ

全角文字も1文字として数えます。
全角文字を2文字として扱いたい場合、byteLengthメソッドを用います

例1

メニューの「ウィンドウ」>「コンソール」でコンソールウィンドウを表示し、さらに
メニューの「ウィンドウ」>「テスト実行」で表示されるウィンドウに次のように入力し
F9をおします

a="Tonyuシステム";
print("「"+a+"」は"+a.length()+"文字です");

▲ コンソールには次のように表示されます。

「Tonyuシステム」は9文字です

注意

次のように文字定数に直接.length()をつけることはできません

"Tonyu".length(); // エラー

String.byteSubstring

substringと似ていますが、全角文字を2文字として数えます。

書式

byteSubstring(b,e)
  • b
     抜き出し開始位置。先頭を0として、全角文字を2と数える
  • e(省略可能)
     抜き出し終了位置。この位置の1文字手前までが抜き出される。省略した場合は最後まで

戻り値

b,eによって指定された範囲内の文字列を返します。


String.byteAt

文字列のバイトデータの特定の場所におけるキャラクタコードを得ます。

書式

byteAt(n)
  • n
     位置

戻り値

strのバイトデータにおける、nバイト目のキャラクタコード


String.charAt

文字列からiバイト目のキャラクタコードをぬきだします

書式

charAt(i)
  • i
     文字列のインデックス。0が先頭、全角文字は2文字と数える

戻り値

iバイト目のキャラクタコード

byteAtと同じ動作をします。

"1文字"だけを抜き出す場合は

s.substring(i,1)

を使います。


String.split

カンマ(",")などで区切られた文字列("abc,def,efg"など)を配列に分解します。

書式

split(separator,limit)
  • separator(省略可能)
     区切りに使う文字列。省略すると、文字列strをカンマ (",")で区切ります。
  • limit(省略可能)
     limitで指定された個数を超える要素をもつ配列を生成しません。省略すると個数に制限はありません。

例1

メニューの「ウィンドウ」>「コンソール」でコンソールウィンドウを表示してください

extends SpriteChar;
a="abc,de!f,ghi";
print(a+"を , で区切ります");
b=a.split();
for (e in b) {
  print(e);
}
print(a+"を ! で区切ります");
b=a.split("!");
for (e in b) {
   print(e);
}
print(a+ "を , で区切ります(要素数は2つまで)。");
b=a.split("," ,2);
for (e in b) {
   print(e);
}

命令リファレンスWikiトップ