Binary strings: Difference between revisions

no edit summary
(Added Wren)
No edit summary
Line 756:
!. !encode!utf-8 b #prints "abc"
</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}}==
478

edits