2016-12-28 19 views
0

次の例では、変数x2はの代わりにmy name is Paulという値で終了する必要がありますが、これは可能ですか?文字列変数に変数を代入する

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スタイルの 'format'を使用すると動作します。 –

答えて

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

これは動作します:

あなたは、文字列のCスタイルのフォーマットを使用したいです
scala> val x4 = "my name is %s" 
x4: String = my name is %s 

scala> x4.format("Paul") 
res3: String = my name is Paul 
関連する問題