Bランクレベルアップメニュー【文字列の長さ・文字列の1文字目・配列の要素の出力・1文字ずつ出力・重複カウント】
【文字列の長さ】コード
reader.on('close', () => {
const s = lines[0];
console.log(s.length); // s の文字数を出力
});
s.length
で s の文字数 を取得。
【文字列の1文字目】コード
reader.on('close', () => {
const s = lines[0];
console.log(s[0]); // s の一文字目を出力
});
s[0] で s の一文字目が取得できました。
【配列の要素の出力】コード
const S = ['Nara', 'Shiga', 'Hokkaido', 'Chiba']; // 配列 S を定義
S.forEach(s => { // s で S の要素を受取って…
console.log(s); // s を出力
});
配列の各要素を 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]); // s の i 文字目を出力
}
});
入力を 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_ が含まれれば含まれる数を出力
});
for文で s の要素に一文字ずつアクセスし c と一致すれば ans++。
※s.match(c_) の戻値は s に含まれる c_ と一致する文字の配列。
コメント