加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 19:20:33 所属栏目:安全 来源:网络整理
导读:我有以下代码,基于输入(args)我想创建一个字符串,但答案是不正确的.我有args(0)是一个路径,args(1)是一个像“”的操作数,而args(2)是一个数字(我想在它们之间放置空格: //some code .. var Statement="" for (j-0 to 2) { if (Files.exists(Paths.get(args(
我有以下代码,基于输入(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 ...

输出是空白的!
我用过this link as reference.
你能帮我解决这个问题吗?我是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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读