1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

文字列をそのまま扱ってくれるraw stringという形式

Last updated at Posted at 2019-10-01

背景

先日、Kolinのリファレンスを読んでいたら、不思議なコードを見かけました。

val text = """
    for (c in "foo")
        print(c)
"""

ダブルコートが3つ!?嘘だろ..と思い
これがなんなのか調べました。
(と言いつつ、リファレンスで見つけたので、リファレンスを読んで試しただけです。)

トリプルクウォートで囲まれた文字

kotlinでトリプルクウォートで囲まれた文字はraw stringと呼ぶようです。
この中では、改行やスペースや「"」などのエスケープ文字が必要になる記号を、そのまま入力しても入力したままの文字として扱ってくれるようです。

val text = """
    "hello world",
    \n
    ¥¥¥¥
    &&'`123n%^&*
    """

println("$text")

output

    "hello world",
    \n
    ¥¥¥¥
    &&'`123n%^&*

ただ、インデントまで文字列として入ってしまうよう...
なので trimMargin() が用意されています。

trimMargin() の引数には行の先頭の記号を指定できます。(デフォは"|")
このメソッドを使用することで、その記号が行の先頭になります。

val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |Involve me and I learn.
    |(Benjamin Franklin)
    """.trimMargin()

println("$text")

output

Tell me and I forget.
Teach me and I remember.
Involve me and I learn.
(Benjamin Franklin)

終わりに

正直、これといって使い道は思い当たらないですが、
覚えておくといつか使えそうな気がします。

詳細は、下記のリファレンスを見てみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?