文字の重複カウント《Bランク UP メニュー》

Bランクレベルアップメニュー【文字列の長さ・文字列の1文字目・配列の要素の出力・1文字ずつ出力・重複カウント】

【文字列の長さ】コード

reader.on('close', () => {
   const s = lines[0];
   console.log(s.length);  // s の文字数を出力
});
hogeちゃんの画像

s.lengths の文字数 を取得。

【文字列の1文字目】コード

reader.on('close', () => {
   const s = lines[0];
   console.log(s[0]); // s の一文字目を出力
});
hogeちゃんの画像

s[0] で s の一文字目が取得できました。

【配列の要素の出力】コード

const S = ['Nara', 'Shiga', 'Hokkaido', 'Chiba'];  // 配列 S を定義
S.forEach(s => {  // sS の要素を受取って…
   console.log(s);  // s を出力
});
hogeちゃんの画像

配列の各要素を forEach() で出力。

【1文字ずつ出力】コード

reader.on('close', () => {
   const s = lines[0];  // s で入力(文字列)を受取り
   const l = s.length;  // s の文字数
   for (let i = 0; i < l; i++) {
      console.log(s[i]);  // si 文字目を出力
   }
});
hogeちゃんの画像
入力を s で受け取り s の文字数を l に保存。for文 で 一文字ずつ出力しました。

【文字の重複カウント】コード

reader.on('close', () => {
   const c = lines[0];  // 文字
   const s = lines[1];  // 文字列
   let ans = 0;
   const l = s.length;  // 文字数
   for (let i = 0; i < l; i++) {
      if (s[i] === c) {  // s[i] と c が同じなら…
         ans++;  // ans を加算
      }
   }
   console.log(ans);
  // const c_ = new RegExp(lines[0], 'g');  // 正規表現オブジェクト
  // console.log(c_.test(s) ? s.match(c_).length : 0); // s に c_ が含まれれば含まれる数を出力
});
hogeちゃんの画像

for文で s の要素に一文字ずつアクセスし c  と一致すれば ans++。

s.match(c_) の戻値は s に含まれる c_ と一致する文字の配列。

コメント