文字列の書き方

C言語

" で囲んで文字列(char[]型)を表す。 ' で囲むと文字列ではなく文字(char型)になる。

-> 概要

Java

" で囲んで文字列(String型)を表す。 ' で囲むと文字列ではなく文字(char型)になる。

Scala

" で囲んで文字列(String型)を表す。または """ で囲んだヒアドキュメントを使う。 ' で囲むと文字列ではなく文字(scala.Char型)になる。

PHP

' または " で囲む。またはヒアドキュメントを使う。

" で囲んだ場合とヒアドキュメントでは $ で始まる部分が変数名として値に展開される。

Python

' または " で囲む。または三重引用符(トリプルクオート) ''' または """ で囲む。

トリプルクオートの中には改行をそのまま含めることもできる。トリプルクオートの文字列を複数行コメントの代わりとしてよく使われる。

', ", ''', """ の前に r または R をプレフィックスとしてつけると、 raw文字列というものになり、バックスラッシュによるエスケープシーケンスの多くが無効になる。

エスケープシーケンスも参照。

文字列リテラル | Python 2.7 documentation
http://docs.python.jp/2/reference/lexical_analysis.html#strings

文字列リテラル | Python 3 documentation
http://docs.python.jp/3/reference/lexical_analysis.html#string-and-bytes-literals

Ruby

' または " で囲む。またはヒアドキュメントを使う。

" で囲んだ文字列は、中に式を埋め込むこと(式展開)ができ、 エスケープの種類も "..." のほうが多い。

他の言語と違って、' または " のどちらで囲んでも途中に改行を入れることができる。

'...' の代わりに %q(...) という表記も使える。 %q(...) の中では ' をエスケープする必要がないので、文字列の中に ' がたくさんある場合には %q(...) のほうが便利。

同様に "..." の代わりに %Q(...) という表記も使える。 %Q(...) の中では " をエスケープする必要がないので、文字列の中に " がたくさんある場合には %Q(...) のほうが便利。

p 'abc\ndef'
# => "abc\\ndef"
# シングルクオートでは \n と書いても改行にはならず \n の2文字になる

p "abc\ndef"
# => "abc\ndef"

p 'abc
def'
# => "abc\ndef"
# 途中に改行をそのまま入れることができる

p "abc
def"
# => "abc\ndef"
# 途中に改行をそのまま入れることができる

p %q(a'bc')
# => "a'bc'"
# %q(...) はシングルクオートと同じ

p %Q(a"bc")
# => "a\"bc\""
# %Q(...) はダブルクオートと同じ

%q と似たような仕組みは配列にもある。

Perl

' または " で囲む。または、q//, qq// の表記も使える。 ヒアドキュメントも使える。これらは中の変数名等が展開されるものと展開されないものの2つの種類に分けられる。 " で囲まれた表記、qq// の表記、終端識別子を " で囲むヒアドキュメントは、中の変数名等が展開される。 ' で囲まれた表記、q// の表記、終端識別子をクオートで囲まないか ' で囲むヒアドキュメントは、中の変数名等が展開されない。

q//, qq// の表記は、qqq のあとに / などの終端記号を指定して、文字列を書いて最後に指定した終端記号で閉じる表記で、Rubyにも似た機能がある。

qqq のあとに (, {, [, < を置くと、終端記号は、 ), }, ], > になり、括弧を対応させれば、中でネストさせることも可能になる。

use Data::Dumper;

my $str1 =  q/abc\ndef/;
my $str2 = qq/abc\ndef/;

print Dumper($str1);
# =>
# $VAR1 = 'abc\\ndef';

print Dumper($str2);
# =>
# $VAR1 = 'abc
# def';

JavaScript

ソースコード中に文字列リテラルを書くには、 ' または " で囲む。

CoffeeScriptにあるような変数展開の機能はない。

CoffeeScript

' または " で囲む。

" で囲んだ文字列は、変数展開することができる。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。