Spec-Zone.ru › D

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API