繁体   English   中英

如何在Scala中进行字符串连接

[英]How to do string concatenation in Scala

我有以下代码,基于输入(args)我想创建一个字符串,但答案是不正确的。 我有args(0)是一个路径,args(1)是一个像“+”的操作数,而args(2)是一个数字(我想在它们之间放置空格:

 //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 ...

输出是空白的! 我使用此链接作为参考 你能帮我解决这个问题吗?我是Scala的新手。 谢谢。

String.concat返回一个全新的String对象。 它根本不会改变你当前的Statement变量。 现在我不建议您执行以下操作,但技术上需要更改的是将Statement重新分配给所有concat调用的返回值:

 //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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM