Comparison of programming languages (strings)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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
+ ALGOL 68, BASIC, C++, C#, Pascal, Object Pascal, Eiffel, Go, JavaScript, Java, Python, Turing, Ruby, Windows PowerShell, Objective-C, F#
++ 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, F#, rc
// 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 strcat function 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#, F#
"Hello, world!" Java, JavaScript
r"Hello, world!" Python
'Hello, world!' Pascal, Object Pascal, PHP, Perl, Windows PowerShell, JavaScript
<![CDATA[Hello, world!]]> XML (CDATA section)
`Hello, world!` Go, Smalltalk

[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#, F#, Java, Ocaml, Python, JavaScript
"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!""" Ada, ALGOL 68, Excel, Fortran, Visual Basic, COBOL
'I said ''Hello, world!''' Fortran, rc

[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)
′I said ′′Hello, world!′′.′ Double quoting Smalltalk
'I said ''Hello, world!''.'
Double quoting Pascal, Object Pascal, SQL standard
"""Hello, world!""" Triple quoting Python
13HHello, world! Hollerith notation Fortran 66
(indented with whitespace) Indented with whitespace and newlines YAML
Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export