GASで文字列操作を極めろ!切り出し・結合・比較までのテクニック

GASを使って文字列操作を覚えたいんだけど、なんだか難しそうで…
猫男
猫男
catman
catman
心配無用だ。catmanがじっくり教えるさ。

GASで文字列を切り出す方法

GASで文字列を切り出すことで、特定の部分を取り出せる。

GASでは、substring()メソッドが便利だ。

function cutString() {
  var str = "Hello, GAS!";
  var cutStr = str.substring(7, 10); // "GAS"
  Logger.log(cutStr);
}

 

この例では、「Hello, GAS!」の文字列から「GAS」を切り出している。

str.substring(7, 10);の7と10は、7文字目と10文字目ではない点に注意しよう。

それぞれの引数は「開始位置」と「終了位置」を表し、インデックス 7からインデックス 10 の手前 までを切り出すことを意味しているんだ。

“Hello, GAS!” の文字インデックスはこうなっているはずだ ↓

インデックス 文字
0 H
1 e
2 l
3 l
4 o
5 ,
6 (半角スペース)
7 G
8 A
9 S
10 !

G(7)〜S(9) が取得される結果、 "GAS" と出力されるんだ。

おぉ、簡単に特定の位置から文字列を取り出せるんだね。
猫男
猫男

GASで文字列を結合する方法

文字列を結合したいときは、二つの方法がある。+演算子か、concat()メソッドだ。

+演算子で結合する

function joinString() {
  var str1 = "Google";
  var str2 = "Apps Script";
  var combined = str1 + " " + str2; // "Google Apps Script"
  Logger.log(combined);
}

concat()で結合する

function concatStrings() {
  var str1 = "GAS";
  var str2 = "is powerful!";
  var combined = str1.concat(" ", str2); // "GAS is powerful!"
  Logger.log(combined);
}

concatメソッドは配列同士を結合する時にもよく使われるぞ。

あわせて復習しておこう。

 

catman
catman
これで文字列の結合も自在だな。

 

GASで文字列を検索・置換する方法

重複する文字や、特定の文字を検索・置換するのはプログラミングの基本。もちろん、GASでも実現できる。

文字列を検索する

function findIndex() {
  var str = "Find the index of GAS.";
  var index = str.indexOf("GAS"); // 16
  Logger.log(index);
}

文字列を置換する

function replaceString() {
  var str = "I love coding in JavaScript.";
  var newStr = str.replace("JavaScript", "GAS");
  Logger.log(newStr); // "I love coding in GAS."
}
んー、GASで検索したり置換したりも手間がかからないね!
猫男
猫男

GASで文字列を変換する方法

もちろん、GASではデータのタイプを変換できるぞ。

文字列 → 数値

function stringToNumber() {
  var str = "123";
  var num = Number(str); // 123
  Logger.log(num);
}

文字列 → 日付

function stringToDate() {
  var strDate = "2023-12-01";
  var date = new Date(strDate);
  Logger.log(date);
}
catman
catman
データの形式をうまく変換できれば、操作の幅が広がるさ。

GASで文字列を比較する方法

GASでは文字列を比較できるぞ。

function compareStrings() {
  var str1 = "Hello";
  var str2 = "World";
  var areEqual = (str1 === str2); // false
  Logger.log(areEqual);
}

今回は厳密等価演算子(===) を使って比較している。

「値」と「型」 の両方が同じかどうか比較して、一致すれば true、違えば falseだ。

詳しくは「GASの演算子」で復習しておこう。

あらためて見ると、GASでの文字列操作は奥が深いんだね…!
猫男
猫男

 

練習問題

  1. GASで「Hello GAS!」の文字列から「Hello」を切り出すスクリプトを書いてください。
  2. 「Welcome to GAS programming!」という文字列の「GAS」を「Google Apps Script」に置換してください。

 

 

解答と解説

問題1の解答と解説

function extractGAS() {
  var str = "Hello, GAS!";
  var extracted = str.substring(0, 5); // "GAS"
  Logger.log(extracted);
}

substring()メソッドを使えば、文字列の指定した開始位置(H)から終了位置(,)の直前までの部分を返す。

問題2の解答と解説

function replaceGAS() {
  var sentence = "Welcome to GAS programming!";
  var newSentence = sentence.replace("GAS", "Google Apps Script");
  Logger.log(newSentence); // "Welcome to Google Apps Script programming!"
}

replace()メソッドを使って、特定の文字列「GAS」を「Google Apps Script」に置き換える。