Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
45
Task/Binary-strings/D/binary-strings.d
Normal file
45
Task/Binary-strings/D/binary-strings.d
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
void main() /*@safe*/ {
|
||||
import std.array: empty, replace;
|
||||
import std.string: representation, assumeUTF;
|
||||
|
||||
// String creation (destruction is usually handled by
|
||||
// the garbage collector).
|
||||
ubyte[] str1;
|
||||
|
||||
// String assignments.
|
||||
str1 = "blah".dup.representation;
|
||||
// Hex string, same as "\x00\xFB\xCD\x32\xFD\x0A"
|
||||
// whitespace and newlines are ignored.
|
||||
str1 = cast(ubyte[])x"00 FBCD 32FD 0A";
|
||||
|
||||
// String comparison.
|
||||
ubyte[] str2;
|
||||
if (str1 == str2) {} // Strings equal.
|
||||
|
||||
// String cloning and copying.
|
||||
str2 = str1.dup; // Copy entire string or array.
|
||||
|
||||
// Check if a string is empty
|
||||
if (str1.empty) {} // String empty.
|
||||
if (str1.length) {} // String not empty.
|
||||
if (!str1.length) {} // String empty.
|
||||
|
||||
// Append a ubyte to a string.
|
||||
str1 ~= x"0A";
|
||||
str1 ~= 'a';
|
||||
|
||||
// Extract a substring from a string.
|
||||
str1 = "blork".dup.representation;
|
||||
// This takes off the first and last bytes and
|
||||
// assigns them to the new ubyte string.
|
||||
// This is just a light slice, no string data copied.
|
||||
ubyte[] substr = str1[1 .. $ - 1];
|
||||
|
||||
// Replace every occurrence of a ubyte (or a string)
|
||||
// in a string with another string.
|
||||
str1 = "blah".dup.representation;
|
||||
replace(str1.assumeUTF, "la", "al");
|
||||
|
||||
// Join two strings.
|
||||
ubyte[] str3 = str1 ~ str2;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue