Comparison of programming languages (strings)
From Wikipedia, the free encyclopedia
| This article does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (February 2009) |
Contents |
[edit] Concatenation
Different languages use different symbols for the concatenation operator. Most languages use the "+" symbol, though several deviate from this norm.
[edit] Common variants
| Operator | Languages |
|---|---|
| + | BASIC, C++, C#, Pascal, Delphi, Eiffel, JavaScript, Java, Python, Turing, Ruby, Windows PowerShell, Objective-C |
| ++ | Haskell |
| $+ | mIRC Scripting Language |
| & | Ada, AppleScript, Curl, VHDL, Visual Basic, Excel |
| . | Perl (before version 6), PHP, and Maple (up to version 5), Autohotkey |
| ~ | Perl 6 and D |
| || | Icon, Standard SQL, PL/I, Rexx, and Maple (from version 6) |
| <> | Mathematica |
| .. | Lua |
| , | J programming language, Smalltalk |
| ^ | OCaml, Standard ML |
| // | Fortran |
[edit] Unique variants
- Awk uses the empty string: two expressions adjacent to each other are concatenated. This is called juxtaposition. Unix shells have a similar syntax. Rexx uses this syntax for concatenation including an intervening space.
- C allows juxtaposition for string literals, however, for strings stored as character arrays, the
strcatfunction must be used. - MATLAB and Octave use the syntax "
[x y]" to concatenate x and y. - Visual Basic Versions 1 to 6 can also use the "
+" sign but, this leads to ambiguity if a string representing a number and a number is added together. - Microsoft Excel allows both "
&" and the function "=CONCATENATE(X,Y)".
[edit] String literals
This section compares styles for declaring a string literal.
[edit] Quoted raw
| Syntax | Language(s) |
|---|---|
| @"Hello, world!" | C# |
| r"Hello, world!" | Python |
| 'Hello, world!' | PHP, Perl, Windows PowerShell |
| <![CDATA[Hello, world!]]> | XML (CDATA section) |
[edit] Quoted interpolated
| Syntax | Language(s) |
|---|---|
| "Hello, $name!" | PHP, Perl, Windows PowerShell |
| "Hello, #{name}!" | Ruby |
[edit] Escaped quotes
| Syntax | Language(s) |
|---|---|
| "I said \"Hello, world!\"" | C, C++, C#, Java |
| "I said `"Hello, world!`"" | Windows Powershell |
| "I said ^"Hello, world!^"" | REBOL |
| "I said, %"Hello, World!%"" | Eiffel |
[edit] Dual quoting
| Syntax | Language(s) |
|---|---|
| "I said ""Hello, world!""" | Visual Basic, Excel |
| This section requires expansion. |
[edit] Multiple quoting
| Syntax | Language(s) |
|---|---|
| qq(I said "Hello, world!") | Perl |
| %Q(I said "Hello, world!") %(I said "Hello, world!") |
Ruby |
| {I said "Hello, world!"} | REBOL |
[edit] Here document
| Syntax | Language(s) |
|---|---|
| <<EOF I have a lot of things to say and so little time to say them EOF |
Perl, PHP, Ruby |
| @" I have a lot of things to say and so little time to say them "@ |
Windows Powershell |
| "[ I have a lot of things to say and so little time to say them ]" |
Eiffel |
[edit] Unique quoting variants
| Syntax | Variant name | Language(s) |
|---|---|---|
| """Hello, world!""" | Triple quoting | Python |
| 13HHello, world! | Hollerith notation | FORTRAN |
| (indented with whitespace) | Indented with whitespace and newlines | YAML |

