文字列処理メニュー【文字列の検索・文字列の反転・回文判定・文字列の分割・日時データの変換その1】
【文字列の検索】コード
reader.on('close', () => {
const S = lines[0];
const T = lines[1];
console.log(S.includes(T) ? 'YES' : 'NO'); // S に T が含まれる→″YES″,含まれない→″NO″
});
S.includes(T) の戻り値 は S に T が 含まれていれば true 含まれていなければ falseでしたね。
【文字列の反転】コード
reader.on('close', () => {
const S = lines[0];
let T = ''; // T を空文字で初期化
for (let i = S.length - 1; i >= 0; i--) {
T += S[i]; // S を逆順で一文字ずつ読み取り T に追加
}
console.log(T);
// const S2 = lines[0].split(''); // 入力を配列に変換受取り
// console.log(S2.reverse().join('')); // reverse()で並べ替えてjoin('')で結合
});
T (最初は空文字) に S を逆順で一文字ずつ読み取った 文字をプラスしました。
下の2行は入力を配列化して逆順に並べ替えてから結合して出力するコード…。
【回文判定】コード
reader.on('close', () => {
const S = lines[0];
let T = ''; // T を空文字で初期化
for (let i = S.length - 1; i >= 0; i--) {
T += S[i]; // S を逆順で一文字ずつ読み取り T に追加
}
console.log(S === T ? 'YES' : 'NO'); // S === T が trun →″YES″,false→″NO″
});
【17】と同じ手順で S と T が一致すれば ″YES″。さもなくば ″NO″ を出力しています。
【文字列の分割】コード
reader.on('close', () => {
const S = lines[0];
const T = S.split(','); // T (配列)の要素は S を ″,″ 区切りで分割した値
T.forEach(t => {
console.log(t);
});
});
S を ″,″ 区切りで分割した配列を T に保存して 各要素を出力しています。
【日時データの変換その1】コード
reader.on('close', () => {
const S = lines[0]; // S = yyyy/MM/dd/hh:mm
const T = S.split('/'); // T = [yyyy, MM, dd, hh:mm]
T[3] = T[3].split(':'); // T = [yyyy, MM, dd, [hh, mm]]
T.flat().forEach(t => { // T.flat() = [yyyy, MM, dd, hh, mm]
console.log(t);
});
});
S. を “/” 区切りの配列 (T) にしてから 4番目の値(T[3]) を ″:″ で区切った配列にしました。T は2次元配列になったので 出力時に T.flat() を実行して1次元の配列にしています。
コメント