2016-12-28 8 views
0

ersetzen Im folgenden Beispiel brauche ich die Variable x2 mit dem Wert my name is Paul statt my name is $name, ist das möglich?Variable in Stringvariable

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

Sie möchten dies nur über die String-Interpolation tun? –

+0

Ich muss nur die Variable in einer anderen instanziierten Variablen – ps0604

+0

ersetzen Dann sollte mit alten C-Stil 'Format' funktionieren. –

Antwort

5

String-Interpolation ist hier nicht gut geeignet, da Sie eine vorhandene Zeichenfolge formatieren möchten. Sie wollen C-Stil-Format einer Zeichenkette verwenden:

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

Wenn Sie wollen (obwohl ich keinen guten Grund, um zu sehen), können Sie StringContext direkt verwenden:

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

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

Ich denke OP interessiert sich für eine Interpolation einer nicht interpolierten Zeichenfolge, die bereits instanziiert wurde ... –

+0

@Yuval Ich habe erreicht, was Sie in der Variable 'xxx' anzeigen, das ist nicht was ich brauche – ps0604

1

Dies funktioniert:

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

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