String hoge1 = 'hoge'; String hoge2 = "hoge";シングルクォートとダブルクォートはどちらも同じです。シングルクォートで囲まれた文字列にはダブルクォートを含むことができます。逆も可能です。
シングルクォート3つ、あるいはダブルクォート3つを続けると、複数行の文字列も表現できます。
String hoge3 = '''abc def'''; String hoge4 = """ghi jkl""";これらは改行が含まれる文字列として扱われます。サンプルコード
main() { String block = ''' <div> <span class="xyz"/> </div> '''; print('<body>' + block + '</body>'); }実行結果は次のようになります。
<body> <div> <span class="xyz"/> </div> </body>文字列の中にはエスケープ シーケンスが使えます。\r(キャリッジリターン)、\n(改行)などのよく使われるものの他に、\uに16進数値4桁あるいは \u{16進数値} でユニコード文字を表せます。
String hoge5 = '\x0A'; // 改行 String hoge6 = '\u3042'; // 'あ'文字列の先頭にアットマーク @ をつけると、エスケープ シーケンスとなる文字をエスケープせずに、そのままの文字として扱えます。サンプルコード
String hoge7 = @'\x0A'; // '\x0A' String hoge8 = @'''a\n b'''; // 'a\nb'('\n'のうしろ改行が入る)また、文字列リテラル中にドルマーク $ で始まる表現を使って、変数名などの式とその値を使った文字列補間(String interpolation)が行えます。
int a = 5; print('a=$a'); // a=5式の区切りが明らかでない場合は、変数名をかっこ {} で囲います。
int b = 5; print('b=${b}th'); // b=5th文字列補間はネストできますので、こんな書き方もできます。サンプルコード
main() { for (int i = 1; i <= 5; i++) { print('${i == 1 ? "${i}st" : i == 2 ? "${i}nd" : i == 3 ? "${i}rd" : "${i}th"}'); } }実行結果は次のようになります。
1st 2nd 3rd 4th 5th
0 件のコメント:
コメントを投稿