変数内に格納できる文字列の操作について

返信する
フタツギ
記事: 9
登録日時: 2016年7月29日(金) 18:14

変数内に格納できる文字列の操作について

投稿記事 by フタツギ »

はじめまして。
スクリプトについてよく分かってないところがたくさんあるので質問させて下さい。

変数に「'」か「"」で文字列を囲むとその文字列を変数内に格納し、「文章の表示」でその文字列を表示出来ることを知りました。それを知ってから文字列も使ったゲームを考えているのですが、変数操作で文字列を合わせたり削ったりしようとしても、代入や加算でしか上手く文字列を処理してくれません。

したい操作としては
「文字列Aから文字列Bを削除する」
「文字列Aに格納されている最初の文字もしくは最後の文字を切り取る、また切り取った文字を他に代入する」
「文字列Aに格納されている文字数を数える」
「文字列Aに入っている文字列Bを文字列Cに置換する」
「文字列Aにある文字列Bまでの文章を切り取る」
などがあるのですが、良ければやり方を教えていただけないでしょうか。

よろしくお願いします。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: 変数内に格納できる文字列の操作について

投稿記事 by yamachan »

こんにちは! :D

MVというより、JavaScript に関する初歩的な質問なので、まずはJavaScript関連の入門書やページを参照すると良いとおもいます。
例えば以下のような

https://developer.mozilla.org/ja/docs/W ... cts/String

ググると、以下のような例が山のようにヒットします。

文字列Aから文字列Bを削除する -> "ABCDEFG".replace("BCD", "")
文字列Aに格納されている文字数を数える -> "ABCDEFG".length
文字列Aに入っている文字列Bを文字列Cに置換する -> "ABCDEFG".replace("BCD", "bcd")
最初の文字 -> "ABCDEFG".charAt(0)
最後の文字 -> "ABCDEFG".charAt("ABCDEFG".length -1)

ご質問の件はほとんど基本関数のサンプルにありますが、正規表現を使えば更に複雑な処理もできます。

スクリプトで使うときは文字列 "ABCDEFG"などは実際には変数22の場合には $gameVariables.value(22) などに置き換えてください。

ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/b ... ADME.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
フタツギ
記事: 9
登録日時: 2016年7月29日(金) 18:14

Re: 変数内に格納できる文字列の操作について

投稿記事 by フタツギ »

yamachanさんこんばんは!返信ありがとうございます!

JavaScriptを調べなければならなかったんですね・・・ツクールMVの、スクリプトやプラグインといった調べ方しかしてませんでした。教えてくださったサイトも参考にしつつ、今後はそちらも調べて勉強します!

WS000010.JPG
ただ、試しに上のように入力してみましたが「文章の表示」での変化はありませんでした・・・
「あいうえお」を代入する
 ↓
文字列中の「い」を「か」に置き換える
 ↓
最初の文字を抜き取る
・・・となって「文章の表示」には「あ」と出力されると思ったのですが上手くいきませんでした。入力しているスクリプト上の文をいじったらエラーが出るので、スクリプト自体はしっかり動いているはずなんですが。

申し訳ありませんが、良ければ入力の仕方など、間違っているところがあれば教えてもらえないでしょうか。
よろしくお願いします。
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: 変数内に格納できる文字列の操作について

投稿記事 by 奏ねこま »

横から失礼します。

例えば「$gameVariables.value(1).replace("い", "か")」ですが、これは$gameVariables.value(1)自体を書き換えるものではなく、
「い→か」に置き換えた「あかうえお」という文字を「新しく作り出す」スクリプトです。
変数001の文字列自体を変えたいのであれば、新し作り出された「あかうえお」を変数001に代入してあげなければなりません。
なので、これらのスクリプトはイベントコマンド「変数の操作...」の中のスクリプトに書くようにしましょう。

他のスクリプトについても同様です。
フタツギ
記事: 9
登録日時: 2016年7月29日(金) 18:14

Re: 変数内に格納できる文字列の操作について

投稿記事 by フタツギ »

@こまさん返信ありがとうございます!

無事思っていた通りの処理で実行されました。yamachanさん、@こまさん、ありがとうございました!

スクリプトコマンドでの処理と変数の処理コマンドでのスクリプトの処理に違いがあったんですね・・・
最初のスクリプトコマンドの方で、変数内に「あいうえお」と文字列が代入出来たので、てっきりそちらで全部処理出来てしまうのだと思っていました。イマイチ違いが分かってませんが、今後気を付けて作っていきます。

ヘルプでも分からなくて、言語のサイトを見て入力してみても上手くいかずで正直ちんぷんかんぷんでした。
本当にありがとうございます!頑張ります!
返信する

“MV:質問”に戻る