如何在 Scala 中进行字符串连接
How to do string concatenation in Scala
我有以下基于输入 (args) 的代码,我想创建一个字符串,但答案不正确。我有 args(0) 是一条路径,args(1) 是一个像“+”这样的操作数,args(2) 是一个数字(我想在它们之间放置 space:
//some code ..
var Statement=""
for (j<-0 to 2)
{
if (Files.exists(Paths.get(args(j)))){
Statement.concat(inputXml)
Statement.concat(" ")
}
else{
Statement.concat(args(j))
Statement.concat(" ")
}
println(args(j))
println(Statement)
}
println(Statement)
//some code ...
输出为空白!
我用过this link as reference。
你能帮我解决这个问题吗?我是 Scala 的新手。
谢谢
String.concat return 是一个全新的字符串对象。它根本不会改变您当前的 Statement 变量。现在我不建议您执行以下操作,但从技术上讲,您需要更改的只是将 Statement 重新分配给所有 concat 调用的 return 值:
//some code ..
var Statement=""
for (j<-0 to 2)
{
if (Files.exists(Paths.get(args(j)))){
Statement = Statement.concat(inputXml)
Statement = Statement.concat(" ")
}
else{
Statement = Statement.concat(args(j))
Statement = Statement.concat(" ")
}
println(args(j))
println(Statement)
}
println(Statement)
//some code ...
一个更高效的解决方案是使用 StringBuilder。
val Statement = StringBuilder.newBuilder
Statement.append(...)
println(Statement.toString)
我有以下基于输入 (args) 的代码,我想创建一个字符串,但答案不正确。我有 args(0) 是一条路径,args(1) 是一个像“+”这样的操作数,args(2) 是一个数字(我想在它们之间放置 space:
//some code ..
var Statement=""
for (j<-0 to 2)
{
if (Files.exists(Paths.get(args(j)))){
Statement.concat(inputXml)
Statement.concat(" ")
}
else{
Statement.concat(args(j))
Statement.concat(" ")
}
println(args(j))
println(Statement)
}
println(Statement)
//some code ...
输出为空白! 我用过this link as reference。 你能帮我解决这个问题吗?我是 Scala 的新手。 谢谢
String.concat return 是一个全新的字符串对象。它根本不会改变您当前的 Statement 变量。现在我不建议您执行以下操作,但从技术上讲,您需要更改的只是将 Statement 重新分配给所有 concat 调用的 return 值:
//some code ..
var Statement=""
for (j<-0 to 2)
{
if (Files.exists(Paths.get(args(j)))){
Statement = Statement.concat(inputXml)
Statement = Statement.concat(" ")
}
else{
Statement = Statement.concat(args(j))
Statement = Statement.concat(" ")
}
println(args(j))
println(Statement)
}
println(Statement)
//some code ...
一个更高效的解决方案是使用 StringBuilder。
val Statement = StringBuilder.newBuilder
Statement.append(...)
println(Statement.toString)