GAS文字列の何番目(n文字目)の文字が何か確認する方法(charAtメソッド)

Google Apps Script(GAS)で、文字列の4番目の文字が何か知りたいケースなどがあります。

そこでGASの文字列のn番目が何の文字なのか、調べる方法を解説します。

GASでは文字列処理が多い

Google Apps Script(GAS)で様々な処理を行うスクリプトを書きます。

スプレッドシートのセルに入力された数値から、繰り返し処理や条件分岐を用いて複雑な計算が可能です。

そうした数値処理以外でGASのプログラムで多いのが文字列操作です。

文字列を結合したり、特定の区切り文字で分割したりします。

Slackに情報を投稿したり、TwitterボットをGASで作る場合にも文字列処理は必須です。

GAS文字列のn文字目(n番目)が何か確認

そうした文字列の処理をしている中で、文字列のn文字目が何か確認したい場合があります。

例えば、4文字目が何かによって処理を分けたい場合に、4文字目が何か確認する必要があります。

C言語などのプログラミング言語では、文字列は配列として定義されているため、配列の添え番号に確認したい番号を入力すれば文字が何か確認できました。

この方法はGoogle Apps Script(GAS)でも文字列型のString変数で実行可能ですが、あまり使われないです。

n番目の文字が何か確認できるメソッドが用意されているので、そのGASメソッドを使用します。

n文字目が何か調べるcharAtメソッド

Google Apps Script(GAS)で文字列のn文字目が何か調べるメソッドとして、charAtが用意されています。

String.charAt(n)

charAtの引数のnには0以上の整数を指定し、0=1番目、1=2番目、・・・n=n+1番目の文字が何か表示します。

なお、0以上の整数ということで、マイナスの数字を指定することはできません。

GASで文字列の切り出しや抽出を行うsliceメソッドでは、マイナスの整数を指定可能でしたが、charAtでは指定できないため注意しましょう。

n番目の文字が何か表示するGASサンプルコード

Google Apps Script(GAS)の文字列で、n文字が何の文字か表示するサンプルコードを紹介します。

GASで適当な文字列を定義し、charAtメソッドで引数指定したn-1番目の文字が何かログ出力します。

Google Apps Script(GAS)でcharAtメソッドで文字列の何文字目の文字がなにかログ出力するサンプルコード
function checkNthString() {
  //n番目の文字が何か確認するための文字列を定義
  let text1 = "ABCDEFG";
  let text2 = "何文字目";
  //text1の0文字目が何かcharAtで確認し、ログ出力する
  console.log(text1.charAt(0));
  //text1の3文字目が何かcharAtで確認し、ログ出力する
  console.log(text1.charAt(2));
  //text2の2文字目が何かcharAtで確認し、ログ出力する
  console.log(text2.charAt(1));
  //charAtメソッドで引数に指定できるのは0以上の整数のみ
  //マイナスの数を引数に指定すると何も表示されない
  console.log(text2.charAt(-3));
}

実際に実行すると、以下のように実行結果でログ出力されます。

Google Apps Script(GAS)で文字列のn文字目(何番目)が何の文字か確認するcharAtメソッド

0を指定すると1番目の文字、2を指定すると3番目の文字が出力されています。

またcharAtはマイナスの整数を引数に指定できないため、エラー表示はないものの、負の数だと何も表示されなくなります。

Unicodeの文字列を表示したい場合は

なお、通常の文字ではなく文字のUnicodeを表示するcharCodeAtメソッドもあります。

普段あまり使う機会はありませんが、特定のn番目の文字のUnicodeの数値を取得したい場合に、charCodeAtが利用できます。

まとめ・終わりに

今回、Google Apps Script(GAS)の文字列で特定の番目(n文字目)の文字が何か確認する方法を紹介しました。

charAtメソッドがGASに用意されており、文字列型のStringオブジェクトで利用可能です。

文字列に対し、charAtメソッドの引数に指定したn-1番目の文字が何か返してくれます。

例えば、txt ="ABC"に対して、txt.charAt(2)とするとCが返ってきます。

文字列の特定番目が何か確認し、それに応じて処理を分岐させる際に活用できます。

なお、文字列に特定文字が含まれるか検索したい場合はindexOfメソッドを使いましょう。