新・Bランクレベルアップメニュー【文字列 1】疑似数字
【文字列 1】疑似数字 コード 1/2
reader.on('close', () => {
const S = lines[0];
const L = S.length;
const P_0 = '0'.codePointAt(0); // '0'の文字のコードナンバー
const P_9 = '9'.codePointAt(0); // '9'の文字のコードナンバー
for (let l = 0; l < L; l++) {
for (let r = l; r < L; r++) {
const S_l = S.codePointAt(l); // 最初の文字のコードナンバー
const S_r = S.codePointAt(r); // 最後の文字のコードナンバー
if ((S_l >= P_0 && S_l <= P_9) && (S_r >= P_0 && S_r <= P_9)) {
console.log(S.substring(l, r + 1));
}
}
}
});
数字であるかどうか調べるために ′0′と′9′ の 文字コードナンバーを使用しました。
【文字列 1】疑似数字 コード 2/2
reader.on('close', () => {
const S = lines[0];
const L = S.length;
for (let l = 0; l < L; l++) {
for (let r = l; r < L; r++) {
const N_l = Number(S[l]);
const N_r = Number(S[r]);
if (!isNaN(N_l) && !isNaN(N_r)) {
console.log(S.substring(l, r + 1));
}
}
}
});
isNaN(N)
は N が数値なら false を返すので 数値なら true を返すように !isNaN()
として 真偽値を反転させています。
コメント