アルゴリズム ・ Chapter 6

【文字列】文字の並びを操る

記事 ・ 冒頭を無料公開中

2つ目のテーマは文字列です。「データ構造の教材で文字列?」と思うかもしれませんが、コーディングテストでの出題頻度は配列と並んでトップクラスです。そして都合のいいことに、文字列は配列とよく似た顔をしています。前の章の知識がかなり流用できるので、「同じところ」と「決定的に違うところ」を整理しながら進めます。

文字列は「文字の並び」。配列と似ている操作

文字列にも添字があり、lengthがあり、検索メソッドがあります。

const word = "typescript";
console.log(word[0]);                  // "t"(添字アクセス)
console.log(word.length);              // 10
console.log(word.includes("script"));  // true
console.log(word.indexOf("s"));        // 4(最初に登場する位置)
console.log(word.slice(0, 4));         // "type"(添字0から4の手前まで)
console.log(word.at(-1));              // "t"(後ろから1番目)

配列で学んだ添字・at・includes・indexOf・sliceが、そのまま文字列でも動きます。「文字が並んだもの」として、配列と同じ感覚で位置や部分を扱えるわけです。

配列との決定的な違い。文字列は変更できない

では、配列と同じ感覚で「上書き」をするとどうなるか。

▶ 実行してみよう

実行すると書き換えができないはずです。これが文字列の最大の特徴です。文字列は、一度作ったら変更できません(この性質をイミュータブル、不変と呼びます)。配列は arr[0] = 99 で書き換えられましたが、文字列にそれはできない。では文字を変えたいときはどうするかというと、新しい文字列を作ります。

新しい文字列を作る

const word = "cat";
const changed = "b" + word.slice(1);   // "b" + "at"
console.log(changed);   // "bat"(新しい文字列)
console.log(word);      // "cat"(元は変わらない)

このチャプターの続きは受講生限定です

本文の残り、図解・実行できるコードブロック・演習はプラン加入後に読めます。

料金プランを見る