提供:Japanese Scratch-Wiki
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
この記事では、カスタムブロックを使って、特定の文字列に指定した文字のいずれかが含まれているかどうか調べる方法を説明する。
スクリプト例
次のスクリプトでは、「調べる文字」として与えられた文字のいずれかが、「もとの文字列」に含まれているかどうかを調べることができる(調べる文字を「abc」とすると、a、b、cのいずれかが含まれていれば結果がtrueになる)。
このスクリプトでは、次の変数を使用する。
- "結果" は、指定した文字が含まれていればtrue、含まれていなければfalseを返す
- "i" は、文字を1つずつずらしていくのに使用する変数 (イテレーター)
- "見つかった数" は、もとの文字列の中で候補となる文字が見つかった回数をカウントする変数
- "文字リスト" は、調べる文字を1文字ずつリストにしたもの。1文字ずつバラバラにすることによって、Scratchにもともと含まれる() に () が含まれるブロックが使用できるので、便利である。
メモ:
このスクリプトは指定した文字が含まれているかどうかを、指定の順番と関係なく判断する。指定したとおりの順番で含まれているかどうかを調べるときは、文字列に指定文字列が含まれているか調べるを参照してほしい。
定義 (もとの文字列) に (調べる文字) が含まれるか [結果 v] を [false] にする [文字リスト v] のすべてを削除する::list [i v] を (1) にする ((調べる文字) の長さ) 回繰り返す // 調べる文字を1文字ずつリストに入れる ((調べる文字)の(i)番目の文字::operators) を [文字リスト v] に追加する [i v] を (1) ずつ変える end [i v] を (1) にする [見つかった数 v] を (0) にする ((もとの文字列) の長さ) 回繰り返す もし <[文字リスト v] に ((もとの文字列)の(i)番目の文字::operators) が含まれる> なら [見つかった数 v] を (1) ずつ変える end [i v] を (1) ずつ変える end もし <(見つかった数) > [0]> なら [結果 v] を [true] にする end
関連項目
- 文字列に指定文字列が含まれているか調べる — この記事とよく似ているが、こちらは指定文字として指定した文字がそのままの順番で含まれているかどうか調べる方法を紹介している。
- 文字列