Оглавление
7-15 Подсчет цифровых символов и пробелов
Оригинальное название:
Этот вопрос требует написания программы для ввода строки символов и подсчета количества в ней числовых символов, пробелов и других символов. Для записи рекомендуется использовать операторы переключения.
Формат ввода:
Ввод дает количество символов в строке. Последний возврат каретки указывает на конец ввода и не учитывается.
Выходной формат:
в одну строку согласно
blank = 空格个数, digit = 数字字符个数, other = 其他字符个数
формат вывода. Обратите внимание, что слева и справа от знака равенства и пробела после запятой стоит пробел.
.
Идеи решения проблем:
- Импортируйте
readline
модуль и создайте объект интерфейса: сначалаreadline
представьте модуль и используйтеcreateInterface
методы для создания объекта интерфейсаrl
. Этот объект устанавливает входной поток на стандартный ввод. - Чтение ввода и сохранение: при прослушивании
'line'
событий ввод сохраняется в массивеbuf
. - Подсчитайте количество пробелов, цифр и других символов: инициализируйте и
blank
три переменные равны 0 соответственно. Используйте цикл для обхода каждого символа строки. Для каждого символа определите, к какой категории он принадлежит (пробел, число или другой символ), и добавьте +1 к соответствующей переменной.digit
other
for
text
- Вывод статистических результатов: используйте строку шаблона для вывода результатов в формате «пробел = x, цифра = y, другое = z», где x, y и z — пробелы, цифры и другие символы, подсчитанные на шаге 3. соответственно количество
.
Код JavaScript (узел):
const r = require("readline");
const rl = r.createInterface({
input: process.stdin
});
let buf = [];
rl.on('line', (input) => buf.push(input));
rl.on('close', () => {
const text = buf[0];
let blank = 0, digit = 0, other = 0;
for (let i = 0; i < text.length; i++) {
const char = text.charAt(i);
if (/[a-zA-z]/.test(char)) {
other++;
} else if (/[0-9]/.test(char)) {
digit++;
} else if (char === ' ') {
blank++;
} else {
other++;
}
}
console.log(`blank = ${
blank}, digit = ${
digit}, other = ${
other}`);
});
.