Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Comparison of programming languages (strings)

From Wikipedia, the free encyclopedia
Comparison of
programming languages

Thiscomparison of programming languages (strings) compares the features ofstringdata structures ortext-string processing for over 52 various computerprogramming languages.

Concatenation

[edit]

Different languages use different symbols for the concatenation operator. Many languages use the "+" symbol, though several deviate from this.

Common variants

[edit]
OperatorLanguages
+ALGOL 68,BASIC,C++,C#,Cobra,Dart,Eiffel,F#,Go,Java,JavaScript,Object Pascal,Pascal,Python,Ruby,Rust,Scala,Swift,Turing,Windows PowerShell, Ya
++Elm,Erlang,Haskell
$+mIRC scripting language
&Ada,AppleScript,COBOL (for literals only),Curl,Excel,FreeBASIC,HyperTalk,Nim,Seed7,VHDL,Visual Basic,Visual Basic .NET
concatenateCommon Lisp
.Autohotkey,Maple (up to version 5),Perl,PHP
~D,Raku,Symfony (Expression Language component)
||Icon,Maple (from version 6),PL/I,Rexx, StandardSQL
<>Mathematica,Wolfram Language,Elixir
..Lua
:Pick Basic
,APL,J,Smalltalk
^F#,OCaml,rc,Standard ML
//Fortran
*Julia

Unique variants

[edit]
  • AWK uses the empty string: two expressions adjacent to each other are concatenated. This is calledjuxtaposition.Unix shells have a similar syntax.Rexx uses this syntax for concatenation including an intervening space.
  • C (along withPython andDart[1]) allows juxtaposition for string literals, however, for strings stored ascharacterarrays, thestrcat function must be used.
  • COBOL uses theSTRING statement to concatenate string variables.
  • MATLAB andOctave use the syntax "[x y]" to concatenate x and y.
  • Visual Basic andVisual Basic .NET can also use the "+" sign but at the risk of ambiguity if a string representing a number and a number are together.
  • Microsoft Excel allows both "&" and the function "=CONCATENATE(X,Y)".
  • Rust has theconcat! macro and theformat! macro, of which the latter is the most prevalent throughout the documentation and examples.

String literals

[edit]

This section compares styles for declaring astring literal.

Quoted interpolated

[edit]

An expression is "interpolated" into a string when the compiler/interpreter evaluates it and inserts the result in its place.

SyntaxLanguage(s)
$"hello, {name}"C#, Visual Basic .NET
"Hello, $name!"Bourne shell, Dart, Perl, PHP, Windows PowerShell
qq(Hello, $name!)Perl (alternate)
"Hello, {$name}!"PHP (alternate)
"Hello, #{name}!"CoffeeScript, Ruby,Elixir
%Q(Hello, #{name}!)Ruby (alternate)
(format nil "Hello, ~A" name)Common Lisp
`Hello, ${name}!`JavaScript (ECMAScript 6)
"Hello, \(name)!"Swift
f'Hello, {name}!'Python

Escaped quotes

[edit]

"Escaped" quotes means that a 'flag' symbol is used to warn that the character after the flag is used in the string rather than ending the string.

SyntaxLanguage(s)
"I said \"Hello, world!\""C, C++, C#, D, Dart, F#, Java, JavaScript, Mathematica, Ocaml, Perl, PHP, Python, Rust, Swift, Wolfram Language, Ya
'I said \'Hello, world!\''CoffeeScript, Dart (alternate), JavaScript (alternate), Python (alternate)
"I said `"Hello, world!`""Windows Powershell
"I said ^"Hello, world!^""REBOL
{I said "Hello, world!"}REBOL (alternate)
"I said, %"Hello, World!%""Eiffel
!"I said \"Hello, world!\""FreeBASIC
r#"I said "Hello, world!""#Rust (alternate)
R"("I said "Hello, world!")"C++ (alternate)

Dual quoting

[edit]

"Dual quoting" means that whenever a quote is used in a string, it is used twice, and one of them is discarded and the single quote is then used within the string.

SyntaxLanguage(s)
"I said ""Hello, world!"""Ada, ALGOL 68, COBOL, Excel, Fortran, FreeBASIC, Visual Basic (.NET)
'I said ''Hello, world!'''APL, COBOL, Fortran, Object Pascal, Pascal, rc, Smalltalk, SQL

Quoted raw

[edit]

"Raw" means the compiler treats every character within the literal exactly as written, without processing any escapes or interpolations.

SyntaxLanguage(s)
'Hello, world!'APL, Bourne shell, Fortran, Object Pascal, Pascal, Perl, PHP, Pick Basic, Ruby, Smalltalk, Windows PowerShell
q(Hello, world!)Perl (alternate)
%q(Hello, world!)Ruby (alternate)
R"(Hello, world!)"C++11
@"Hello, world!"C#, F#
r"Hello, world!"Cobra, D, Dart, Python, Rust
r'Hello, world!'Dart (alternate)
"Hello, world!"Cobol, FreeBASIC, Pick Basic
`Hello, world!`D, Go
raw"Hello, world!"Scala
String.raw`Hello, World!`JavaScript (ECMAScript 6)[1]

Multiline string

[edit]

Many languages have a syntax specifically intended for strings with multiple lines. In some of these languages, this syntax is ahere document or "heredoc": A token representing the string is put in the middle of a line of code, but the code continues after the starting token and the string's content doesn't appear until the next line. In other languages, the string's content starts immediately after the starting token and the code continues after the string literal's terminator.

SyntaxHere
document
Language(s)
<<EOFI have a lot of things to sayand so little time to say themEOF
YesBourne shell, Perl, Ruby
<<<EOFI have a lot of things to sayand so little time to say themEOF
YesPHP
@"I have a lot of things to sayand so little time to say them"@
NoWindows Powershell
"[I have a lot of things to sayand so little time to say them]"
NoEiffel
"""I have a lot of things to sayand so little time to say them"""
NoCoffeeScript, Dart, Groovy, Java, Kotlin, Python, Swift
"I have a lot of things to sayand so little time to say them"
NoCommon Lisp (all strings are multiline), Rust (all strings are multiline), Visual Basic .NET (all strings are multiline)
R"(I have a lot of things to sayand so little time to say them)"
NoC++
r"I have a lot of things to sayand so little time to say them"
NoRust
[[I have a lot of things to sayand so little time to say them]]
NoLua
`I have a lot of things to sayand so little time to say them`
NoJavaScript (ECMAScript 6)

Unique quoting variants

[edit]
SyntaxVariant nameLanguage(s)
13HHello, world!Hollerith notationFortran 66
(indented with whitespace)Indented with whitespace and newlinesYAML

Notes

[edit]
1.^String.raw`` still processes string interpolation.

References

[edit]
  1. ^"Built-in types".dart.dev. Retrieved2025-07-22.
1.^https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw
Retrieved from "https://en.wikipedia.org/w/index.php?title=Comparison_of_programming_languages_(strings)&oldid=1324219521"
Categories:

[8]ページ先頭

©2009-2026 Movatter.jp