scala中的字符串類就是java中的java.lang.String類。不過scala也為String提供了一個富封裝類:scala.runtime.RichString。
scala可以將java.lang.String類自動轉換為scala.runtime.RichString類。這樣就可以非常方便地使用capitalize()、lines()和reverse()等方法相對較便捷的方法(有時候這樣做也會帶來一些問題,比如涉及到類型比較的時候)。
在scala里,對於字符串的支持中最顯著的一個特性是對於heredoc的支持,也就是對多行文本的支持。在scala里創建多行字符串非常容易,只要將多行字符串放在三個雙引號里就行。在下面的代碼里創建了一個四行的字符串:
var info = """ 這里是robin的信息: robin的姓名:robin zhang; robin的年齡:29; robin的個人主頁:zhyea.com """ println(info)
輸出如下:
scala會將三個雙引號間的內容保持原樣,在scala里稱為原始字符串。比如我們可以在原始字符串里直接使用雙引號或者反斜杠:
var info = """ 這里是robin的信息: robin的姓名:robin zhang; robin的年齡:29, or "nicai"; robin的個人主頁:zhyea.com 然后我想換行來着:\n 好吧,沒有成功換行! """ println(info)
輸出如下:
如果不想使用縮進的話可以考慮使用RichString的stripMargin()方法,這個方法需要配合管道符號“|”使用。stripMargin()會去掉先導管道符“|”前所有的空白或控制字符。如果出現在其他地方,而不是每行的開始,就會保留管道符。可以看一下下面的代碼:
var info = """ 這里是robin的信息: |robin的姓名:robin zhang; \n|robin的年齡:29, or "nicai"; robin的個人主頁:zhyea.com """ println(info.stripMargin)
下面是執行結果:
如果出於某種原因,管道符號“|”有特殊的用途,可以用stripMargin的重載方法來選擇其他字符作為邊緣字符。
######