std.ascii
Функции, работающие с символами ASCII.
Все функции в std.ascii принимают символы Unicode, но фактически игнорируют их, если они не являются ASCII. Все isX функции возвращают false для символов, не являющихся ASCII, а все toX функции ничего не делают с символами, не являющимися ASCII.
Для функций, работающих с символами Unicode, см. std.uni.
| Категория | Функции |
|---|---|
| Проверка | isAlpha isAlphaNum isASCII isControl isDigit isGraphical isHexDigit isOctalDigit isPrintable isPunctuation isUpper isWhite |
| Преобразования | toLower toUpper |
| Константы | digits fullHexDigits hexDigits letters lowercase lowerHexDigits newline octalDigits uppercase whitespace |
| Перечисления | ControlChar LetterCase |
- Ссылки
- Таблица ASCII, Википедия
- Лицензия:
- Лицензия Boost 1.0.
- Авторы:
- Уолтер Брайт и Джоонатан М. Дэвис
- Исходный код
- std/ascii.d
- неизменяемая строка fullHexDigits;
-
0 .. 9A .. Fa .. f
- неизменяемая строка hexDigits;
-
0 .. 9A .. F
- неизменяемая строка lowerHexDigits;
-
0 .. 9a .. f
- неизменяемая строка digits;
-
0 .. 9
- неизменяемая строка octalDigits;
-
0 .. 7
- неизменяемая строка letters;
-
A .. Za .. z
- неизменяемая строка uppercase;
-
A .. Z
- неизменяемая строка lowercase;
-
a .. z
- неизменяемая строка whitespace;
-
Пробелы ASCII
- перечисление LetterCase: bool;
-
Указатель регистра букв.
- Примеры:
-
import std.conv : to; writeln(42.to!string(16, LetterCase.upper)); // "2A" writeln(42.to!string(16, LetterCase.lower)); // "2a"
- Примеры:
-
import std.digest.hmac : hmac; import std.digest : toHexString; import std.digest.sha : SHA1; import std.string : representation; const sha1HMAC = "A very long phrase".representation .hmac!SHA1("secret".representation) .toHexString!(LetterCase.lower); writeln(sha1HMAC); // "49f2073c7bf58577e8c9ae59fe8cfd37c9ab94e5"
- upper
-
Заглавные буквы
- lower
-
Строчные буквы
- перечисление ControlChar: char;
-
Все управляющие символы в таблице ASCII (источник).
- Примеры:
-
import std.algorithm.comparison, std.algorithm.searching, std.range, std.traits; // Because all ASCII characters fit in char, so do these static assert(ControlChar.ack.sizeof == 1); // All control characters except del are in row starting from 0 static assert(EnumMembers!ControlChar.only.until(ControlChar.del).equal(iota(32))); static assert(ControlChar.nul == '\0'); static assert(ControlChar.bel == '\a'); static assert(ControlChar.bs == '\b'); static assert(ControlChar.ff == '\f'); static assert(ControlChar.lf == '\n'); static assert(ControlChar.cr == '\r'); static assert(ControlChar.tab == '\t'); static assert(ControlChar.vt == '\v');
- Примеры:
-
import std.conv; //Control character table can be used in place of hexcodes. with (ControlChar) assert(text("Phobos", us, "Deimos", us, "Tango", rs) == "Phobos\x1FDeimos\x1FTango\x1E");
- nul
-
Null
- soh
-
Начало заголовка
- stx
-
Начало текста
- etx
-
Конец текста
- eot
-
Конец передачи
- enq
-
Запрос
- ack
-
Подтверждение
- bel
-
Звонок
- bs
-
Backspace
- tab
-
Горизонтальная табуляция
- lf
-
NL перевод строки, новая строка
- vt
-
Вертикальная табуляция
- ff
-
NP перевод страницы, новая страница
- cr
-
Возврат каретки
- so
-
Shift out
- si
-
Shift in
- dle
-
Data link escape
- dc1
-
Управление устройством 1
- dc2
-
Управление устройством 2
- dc3
-
Управление устройством 3
- dc4
-
Управление устройством 4
- nak
-
Отказ от подтверждения
- syn
-
Сynchronous idle
- etb
-
Конец блока передачи
- can
-
Отмена
- em
-
Конец носителя
- sub
-
Замена
- esc
-
Escape
- fs
-
Разделитель файлов
- gs
-
Разделитель групп
- rs
-
Разделитель записей
- us
-
Разделитель единиц
- del
-
Удалить
- неизменяемая строка newline;
-
Последовательность новой строки для этой системы.
- чистая без исключений @nogc @safe bool isAlphaNum(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cбуквой или числом (0 .. 9, a .. z, A .. Z).
- Примеры:
-
assert( isAlphaNum('A')); assert( isAlphaNum('1')); assert(!isAlphaNum('#')); // N.B.: does not return true for non-ASCII Unicode alphanumerics: assert(!isAlphaNum('á'));
- чистая без исключений @nogc @safe bool isAlpha(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cбуквой ASCII (A .. Z, a .. z).
- Примеры:
-
assert( isAlpha('A')); assert(!isAlpha('1')); assert(!isAlpha('#')); // N.B.: does not return true for non-ASCII Unicode alphabetic characters: assert(!isAlpha('á'));
- чистая без исключений @nogc @safe bool isLower(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cстрочной буквой ASCII (a .. z).
- Примеры:
-
assert( isLower('a')); assert(!isLower('A')); assert(!isLower('#')); // N.B.: does not return true for non-ASCII Unicode lowercase letters assert(!isLower('á')); assert(!isLower('Á'));
- чистая без исключений @nogc @safe bool isUpper(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cзаглавной буквой ASCII (A .. Z).
- Примеры:
-
assert( isUpper('A')); assert(!isUpper('a')); assert(!isUpper('#')); // N.B.: does not return true for non-ASCII Unicode uppercase letters assert(!isUpper('á')); assert(!isUpper('Á'));
- чистая без исключений @nogc @safe bool isDigit(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cцифрой (0 .. 9).
- Примеры:
-
assert( isDigit('3')); assert( isDigit('8')); assert(!isDigit('B')); assert(!isDigit('#')); // N.B.: does not return true for non-ASCII Unicode numbers assert(!isDigit('0')); // full-width digit zero (U+FF10) assert(!isDigit('4')); // full-width digit four (U+FF14)
- чистая без исключений @nogc @safe bool isOctalDigit(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cцифрой в системе счисления по основанию 8 (0 .. 7).
- Примеры:
-
assert( isOctalDigit('0')); assert( isOctalDigit('7')); assert(!isOctalDigit('8')); assert(!isOctalDigit('A')); assert(!isOctalDigit('#'));
- чистая без исключений @nogc @safe bool isHexDigit(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cцифрой в системе счисления по основанию 16 (0 .. 9, A .. F, a .. f).
- Примеры:
-
assert( isHexDigit('0')); assert( isHexDigit('A')); assert( isHexDigit('f')); // lowercase hex digits are accepted assert(!isHexDigit('g')); assert(!isHexDigit('G')); assert(!isHexDigit('#'));
- чистая без исключений @nogc @safe bool isWhite(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cсимволом пробела. Это включает пробел, табуляцию, вертикальную табуляцию, перевод страницы, возврат каретки и перевод строки.
- Примеры:
-
assert( isWhite(' ')); assert( isWhite('\t')); assert( isWhite('\n')); assert(!isWhite('1')); assert(!isWhite('a')); assert(!isWhite('#')); // N.B.: Does not return true for non-ASCII Unicode whitespace characters. static import std.uni; assert(std.uni.isWhite('\u00A0')); assert(!isWhite('\u00A0')); // std.ascii.isWhite
- чистая без исключений @nogc @safe bool isControl(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cуправляющим символом.
- Примеры:
-
assert( isControl('\0')); assert( isControl('\022')); assert( isControl('\n')); // newline is both whitespace and control assert(!isControl(' ')); assert(!isControl('1')); assert(!isControl('a')); assert(!isControl('#')); // N.B.: non-ASCII Unicode control characters are not recognized: assert(!isControl('\u0080')); assert(!isControl('\u2028')); assert(!isControl('\u2029'));
- чистая без исключений @nogc @safe bool isPunctuation(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cсимволом пунктуации. Это включает все символы ASCII, которые не являются управляющими символами, буквами, цифрами или пробелами.
- Примеры:
-
assert( isPunctuation('.')); assert( isPunctuation(',')); assert( isPunctuation(':')); assert( isPunctuation('!')); assert( isPunctuation('#')); assert( isPunctuation('~')); assert( isPunctuation('+')); assert( isPunctuation('_')); assert(!isPunctuation('1')); assert(!isPunctuation('a')); assert(!isPunctuation(' ')); assert(!isPunctuation('\n')); assert(!isPunctuation('\0')); // N.B.: Non-ASCII Unicode punctuation characters are not recognized. assert(!isPunctuation('\u2012')); // (U+2012 = en-dash)
- чистая без исключений @nogc @safe bool isGraphical(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cпечатным символом, отличным от пробела.
- Примеры:
-
assert( isGraphical('1')); assert( isGraphical('a')); assert( isGraphical('#')); assert(!isGraphical(' ')); // whitespace is not graphical assert(!isGraphical('\n')); assert(!isGraphical('\0')); // N.B.: Unicode graphical characters are not regarded as such. assert(!isGraphical('á'));
- чистая без исключений @nogc @safe bool isPrintable(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cпечатным символом, включая пробел.
- Примеры:
-
assert( isPrintable(' ')); // whitespace is printable assert( isPrintable('1')); assert( isPrintable('a')); assert( isPrintable('#')); assert(!isPrintable('\0')); // control characters are not printable // N.B.: Printable non-ASCII Unicode characters are not recognized. assert(!isPrintable('á'));
- чистая без исключений @nogc @safe bool isASCII(dchar c);
-
- Параметры:
dchar cСимвол для проверки.
- Возвращает:
- Является ли
cсимволом набора символов ASCII - т.е. в диапазоне 0 .. 0x7F.
- Примеры:
-
assert( isASCII('a')); assert(!isASCII('á'));
- auto toLower(C)(C c)
Ограничения: если (is(C : dchar)); -
Преобразует букву ASCII в нижний регистр.
- Параметры:
C cСимвол любого типа, неявно преобразуемый в dchar. В случае встроенного типа или перечисления встроенного типа возвращаетсяUnqual!(OriginalType!C), в то время как для пользовательского типа возвращаетсяdchar.
- Возвращает:
- Соответствующую букву в нижнем регистре, если
c— буква ASCII в верхнем регистре, в противном случаеc.
- Примеры:
-
writeln(toLower('a')); // 'a' writeln(toLower('A')); // 'a' writeln(toLower('#')); // '#' // N.B.: Non-ASCII Unicode uppercase letters are not converted. writeln(toLower('Á')); // 'Á'
- auto toUpper(C)(C c)
Ограничения: если (is(C : dchar)); -
Преобразует букву ASCII в верхний регистр.
- Параметры:
C cЛюбой тип, неявно преобразуемый в dchar. В случае встроенного типа или перечисления встроенного типа возвращаетсяUnqual!(OriginalType!C), в то время как для пользовательского типа возвращаетсяdchar.
- Возвращает:
- Соответствующую букву в верхнем регистре, если
c— буква ASCII в нижнем регистре, в противном случаеc.
- Примеры:
-
writeln(toUpper('a')); // 'A' writeln(toUpper('A')); // 'A' writeln(toUpper('#')); // '#' // N.B.: Non-ASCII Unicode lowercase letters are not converted. writeln(toUpper('á')); // 'á'
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_ascii.html