2016-12-28 155 views
0

在下面的示例中,我需要變量x2my name is Paul而不是my name is $name結尾,這可能嗎?將字符串變量中的變量替換爲

scala> val name = "Paul" 
name: String = Paul 

scala> val xxx = s"my name is $name" 
xxx: String = my name is Paul 

scala> val x1 = "my name is $name" 
x1: String = my name is $name 

scala> val x2 = s"" + x1 
x2: String = my name is $name 
+0

你只想通過字符串插值來做到這一點? –

+0

我只需要在另一個實例化的變量 – ps0604

+0

中替換變量然後使用舊的C風格'格式'應該工作。 –

回答

5

由於要格式化現有的字符串,所以字符串插值不太適合。你想用一個字符串的空調風格格式:

println("my name is %s".format("paul")) 

如果你想(雖然我看不出有什麼好的理由),你可以直接使用StringContext

scala> val name = "paul" 
name: String = paul 

scala> StringContext("My name is ", "").s(name) 
res1: String = My name is paul 
+0

我認爲OP對插入已經實例化的非插值字符串的方式感興趣... –

+0

@Yuval我實現了你在變量xxx中顯示的內容,這不是我需要的 – ps0604

1

這工作:

scala> val x4 = "my name is %s" 
x4: String = my name is %s 

scala> x4.format("Paul") 
res3: String = my name is Paul