文字列 (string literal)

Awk

メニューに戻る

C言語

メニューに戻る

Java

定数

"abc" "def" はシンタックスエラー。"abcdef" と等価ではない。

分けて書きたいときは "abc" + "def" と書く。これは "abcdef" と等価となる(同じ class ファイルが生成される)ことが期待できる。

文字列の構築

動的に文字列を徐々に付け足す操作を大量に行う場合は、String の + より StringBuilder の append の方が圧倒的に高速。

メニューに戻る

Python

シングルクオート('str')とダブルクオート("str")は等価。

文字列中の変数展開はできないので、+ で文字列結合するか、printf 的な動作の % 演算子を使う。

string = "abc"
num = 123

# 以下の四つは、すべて同じ出力。
print 'string = ' + string + ", num = " + str(num)  # 文字列結合
print 'string = %s, num = %d' % (string, num)  # タプルで % 演算
print 'string = %(keyS)s, num = %(keyN)d' % {"keyS": string, "keyN": num}  # 辞書で % 演算
print 'string = %(string)s, num = %(num)d' % locals()  # ローカル変数辞書で % 演算

メニューに戻る

Ruby

ダブルクオート("str")内では #{変数名} という記述で変数展開される。シングルクオート('str')は変数展開しない。

string = 'abc'
num = 123

puts "string = #{string}, num = #{num}"

メニューに戻る

Shell

ダブルクオート("str")内では変数展開やバッククオートによるコマンド実行結果評価を行う。シングルクオート('str')は行わない。

クオートは文字列ではなく、ひとつの値にする意味である。例のように空白入り文字列を変数に代入するときなどに必要であり、echo するだけならばクオートは不要。

string=abc
num=123

s="string = $string, num = $num"
echo $s
echo string = $string, num = $num

メニューに戻る