Задачи на работу с символами строк в Dart. Часть 4
Дана следующая переменная:
String ch = 'A';
Получите Unicode-код символа через ch.codeUnitAt(0) (тип int), затем восстановите символ через String.fromCharCode.
Дана следующая переменная:
String ch = '@';
Напишите три проверки для односимвольной строки: является ли она буквой, цифрой и пробельным символом. Используйте RegExp (например, r'[A-Za-z]', r'\d', r'\s') или сравнение code units.
Сделайте функцию bool isPunctuation(String ch), которая принимает односимвольную строку и возвращает true, если символ — знак препинания (например, из набора '.,!?;:()-').
Дана следующая переменная:
String ch = 'A';
Реализуйте ROT13 для одной латинской буквы: сдвиньте code unit на 13 позиций в алфавите с «зацикливанием» и верните результат через String.fromCharCode. Не-буквы возвращайте без изменений.
Дана следующая строка:
String str = 'Hello';
Подсчитайте количество гласных букв (a, e, i, o, u без учёта регистра), перебирая символы через str.split(''), str.runes или индекс с str[i].
Сделайте функцию String nextChar(String ch): верните следующий символ в Unicode (code unit + 1). Для входа 'A' ожидается 'B'.
Сделайте функцию bool isAscii(String ch), которая возвращает true, если ch.codeUnitAt(0) лежит в диапазоне от 0 до 127.
Дана следующая строка:
String str = 'a1b2c3';
Замените все цифры в строке на '#' (через replaceAll(RegExp(r'\d'), '#') или ручной перебор символов).
Сделайте функцию int countChars(String str, bool Function(String) predicate): переберите односимвольные фрагменты строки и верните, сколько из них удовлетворяют predicate. Проверьте на подсчёте цифр в 'a1b2c3'.
Дана строка:
String str = 'Hello, Dart! 123';
Комплексная задача: подсчитайте количество букв, цифр, пробелов и знаков препинания. Выведите результат в виде Map<String, int> с ключами 'letters', 'digits', 'spaces', 'punctuation'.