提供: Japanese Scratch-Wiki

() 番目( () )の文字 (ブロック)から転送)

このきじは ひらがなのページがありません。ごめんなさい。
() の () 番目の文字
([world] の (1) 番目の文字::operators)
カテゴリ 演算
タイプ
追加 Scratch 1.4

() の () 番目の文字 ブロック (演算ブロック値ブロック) は、与えられた文字列の指定された位置の文字を返す。 ブロックには「文字」とあるが、いわゆる文字だけでなく、数字、記号、スペース (空白文字) なども値として返す。時間や得点を表示する場合などに便利である。

0番目、-1番目などは空の値を返す。引数に小数が含まれる場合、切り捨てられる。もし「最後からn番目」の文字を取り出すならば、((文字列) の ((((文字列)の長さ) - (n)) + (1)) 番目の文字::operators)を使う。

よくある使用例

文字列の途中の値を取り出したい場合に、このブロックを使用する。 よくある使用例は次のとおり:

  • 答えブロック と一緒に使用して、答えから何かを取り出す
もし <((答え) の (1) 番目の文字::operators) = [z]> なら
[それ、僕も、一番好きな文字なんだ!] と (3) 秒言う
でなければ
[いいね] と (2) 秒言う
end
  • 答えのn番目の位置が数字かどうかを調べる (「数字のリスト」には、0、1、2、... 9の10個の数字を項目として入れておく)
もし <[数字のリスト v] に((答え) の (n) 番目の文字::operators)が含まれる> なら
[数字] と言う
でなければ
[文字/記号] と言う
end
  • 答えの先頭が特定の文字の場合に処理を実行する
もし <((答え) の (1) 番目 の文字::operators) = [z]> なら
[このスクリプト v] を止める
end

バリエーション

Mod版Scratch の中には、このブロックで文字列の中から何文字分取り出すかを指定できるものがある。Scratch にも同様のブロックがほしいという声がある[1]。 その場合、次のようなブロックになるだろう。

([] の () から () 番目の文字::operators)

ただし、このブロックは次のコードで実現できる:

[返す値 v] を [] にする
[カウンター v] を (最初の文字) にする
<(カウンター) = ((最後の文字) + (1))> まで繰り返す
[返す値 v] を ((返す値) と ((文字列) の (カウンター) 番目の文字::operators)) にする
[カウンター v] を (1) ずつ変える
end

Scratch 3.0

拡張機能版ブロック

一時期、Scratch 3.0にはSome Blocks拡張機能が存在していて、その中には「添え字が0から始まるバージョン」のこのブロックがあった。現在は拡張機能ごと存在しない。

関連項目

参照

  1. https://scratch.mit.edu/discuss/topic/47895/