Binary strings: Difference between revisions

Content added Content deleted
(Added Wren)
No edit summary
Line 756: Line 756:
!. !encode!utf-8 b #prints "abc"
!. !encode!utf-8 b #prints "abc"
</lang>
</lang>
=={{header|Delphi}}==
{{libheader| System.SysUtils}}
{{Trans|C#}}
<lang Delphi>
program Binary_strings;

{$APPTYPE CONSOLE}

uses
System.SysUtils;

var
x : string;
c : TArray<Byte>;
objecty,
y : string;
empty : string;
nullString : string;
whitespace,
slice,
greeting,
join : string;
begin
//string creation
x:= String.create(['1','2','3']);
x:= String.create('*',8);
x := 'hello world';

//# string assignment with a hex byte
x := 'ab'#10;
writeln(x);
writeln(x.Length); // 3

//# string comparison
if x = 'hello' then
writeln('equal')
else
writeln('not equal');
if x.CompareTo('bc') = -1 then
writeln('x is lexicographically less than "bc"');

//# string cloning
y := x; // string is not object is delphi (are imutables)
writeln(x = y); //same as string.equals
writeln(x.Equals(y)); //it overrides object.Equals

//# check if empty
// Strings can't be null (nil), just Pchar can be
// IsNullOrEmpty and IsNullOrWhiteSpace, check only for
// Empty and Whitespace respectively.
empty := '';
whitespace := ' ';
if (empty = string.Empty) and
string.IsNullOrEmpty(empty) and
string.IsNullOrWhiteSpace(empty) and
string.IsNullOrWhiteSpace(whitespace) then
writeln('Strings are empty or whitespace');

//# append a byte
x := 'helloworld';
x := x + Chr(83);
// x := x + #83; // the same of above line
writeln(x);

//# substring
slice := x.Substring(5, 5);
writeln(slice);

//# replace bytes
greeting := x.Replace('worldS', '');
writeln(greeting);

//# join strings
join := greeting + ' ' + slice;
writeln(join);

Readln;
end.</lang>
{{out}}
<pre>ab

3
not equal
x is lexicographically less than "bc"
TRUE
TRUE
Strings are empty or whitespace
helloworldS
world
hello
hello world</pre>


=={{header|E}}==
=={{header|E}}==