D обеспечивает следующие два типа строковых представлений —
- Массив символов
- Основная языковая строка
Массив символов
Мы можем представить массив символов в одной из двух форм, как показано ниже. Первая форма предоставляет размер напрямую, а вторая использует метод dup, который создает доступную для записи копию строки «Доброе утро».
char[9] greeting1 = "Hello all"; char[] greeting2 = "Good morning".dup;
пример
Вот простой пример, использующий вышеупомянутые простые формы массива символов.
import std.stdio; void main(string[] args) { char[9] greeting1 = "Hello all"; writefln("%s",greeting1); char[] greeting2 = "Good morning".dup; writefln("%s",greeting2); }
Когда приведенный выше код компилируется и выполняется, он выдает результат, который выглядит следующим образом:
Hello all Good morning
Базовая языковая строка
Строки встроены в основной язык D. Эти строки совместимы с массивом символов, показанным выше. В следующем примере показано простое строковое представление.
string greeting1 = "Hello all";
пример
import std.stdio; void main(string[] args) { string greeting1 = "Hello all"; writefln("%s",greeting1); char[] greeting2 = "Good morning".dup; writefln("%s",greeting2); string greeting3 = greeting1; writefln("%s",greeting3); }
Когда приведенный выше код компилируется и выполняется, он выдает результат, который выглядит следующим образом:
Hello all Good morning Hello all
Конкатенация строк
Конкатенация строк в D-программировании использует символ тильды (~).
пример
import std.stdio; void main(string[] args) { string greeting1 = "Good"; char[] greeting2 = "morning".dup; char[] greeting3 = greeting1~" "~greeting2; writefln("%s",greeting3); string greeting4 = "morning"; string greeting5 = greeting1~" "~greeting4; writefln("%s",greeting5); }
Когда приведенный выше код компилируется и выполняется, он выдает результат, который выглядит следующим образом:
Good morning Good morning
Длина строки
Длина строки в байтах может быть получена с помощью функции длины.
пример
import std.stdio; void main(string[] args) { string greeting1 = "Good"; writefln("Length of string greeting1 is %d",greeting1.length); char[] greeting2 = "morning".dup; writefln("Length of string greeting2 is %d",greeting2.length); }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Length of string greeting1 is 4 Length of string greeting2 is 7
Сравнение строк
Сравнение строк довольно просто в D-программировании. Вы можете использовать операторы ==, <и> для сравнения строк.
пример
import std.stdio; void main() { string s1 = "Hello"; string s2 = "World"; string s3 = "World"; if (s2 == s3) { writeln("s2: ",s2," and S3: ",s3, " are the same!"); } if (s1 < s2) { writeln("'", s1, "' comes before '", s2, "'."); } else { writeln("'", s2, "' comes before '", s1, "'."); } }
Когда приведенный выше код компилируется и выполняется, он выдает результат, который выглядит следующим образом:
s2: World and S3: World are the same! 'Hello' comes before 'World'.
Замена строк
Мы можем заменить строки, используя строку [].
пример
import std.stdio; import std.string; void main() { char[] s1 = "hello world ".dup; char[] s2 = "sample".dup; s1[6..12] = s2[0..6]; writeln(s1); }
Когда приведенный выше код компилируется и выполняется, он выдает результат, который выглядит следующим образом:
hello sample
Методы индекса
Методы индекса для определения местоположения подстроки в строке, включая indexOf и lastIndexOf, объясняются в следующем примере.
пример
import std.stdio; import std.string; void main() { char[] s1 = "hello World ".dup; writeln("indexOf of llo in hello is ",std.string.indexOf(s1,"llo")); writeln(s1); writeln("lastIndexOf of O in hello is " ,std.string.lastIndexOf(s1,"O",CaseSensitive.no)); }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
indexOf.of llo in hello is 2 hello World lastIndexOf of O in hello is 7
Обработка дел
Методы, используемые для изменения случаев, показаны в следующем примере.
пример
import std.stdio; import std.string; void main() { char[] s1 = "hello World ".dup; writeln("Capitalized string of s1 is ",capitalize(s1)); writeln("Uppercase string of s1 is ",toUpper(s1)); writeln("Lowercase string of s1 is ",toLower(s1)); }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Capitalized string of s1 is Hello world Uppercase string of s1 is HELLO WORLD Lowercase string of s1 is hello world
Ограничение персонажей
Символы ограничения в строках показаны в следующем примере.
пример
import std.stdio; import std.string; void main() { string s = "H123Hello1"; string result = munch(s, "0123456789H"); writeln("Restrict trailing characters:",result); result = squeeze(s, "0123456789H"); writeln("Restrict leading characters:",result); s = " Hello World "; writeln("Stripping leading and trailing whitespace:",strip(s)); }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —