感叹号(!)作为scala中的arg

感叹号(!)作为scala中的arg,scala,arguments,escaping,character,Scala,Arguments,Escaping,Character,我对斯卡拉很陌生 编写了一个非常基本的scala脚本,如下所示 args.foreach(a=>println(a)) 使用以下命令在命令提示符中执行上述命令 scala test1.scala Happy Scala Programming !!! 我期望的输出是 Happy Scala Programming !!! 但是我得到了以下结果 Happy Scala Programming 正如我们观察到的“!!!”(感叹号缺失) 需要了解为什么不打印感叹号字符,以及打印这些字符的

我对斯卡拉很陌生

编写了一个非常基本的scala脚本,如下所示

args.foreach(a=>println(a))
使用以下命令在命令提示符中执行上述命令

scala test1.scala Happy Scala Programming !!!
我期望的输出是

Happy
Scala
Programming
!!!
但是我得到了以下结果

Happy
Scala
Programming
正如我们观察到的“!!!”(感叹号缺失)

需要了解为什么不打印感叹号字符,以及打印这些字符的方法


我正在Windows 7命令提示符下执行脚本

您必须在每个感叹号之前使用^,还需要将整个参数放在双引号中。因此,这将起作用:

scala test1.scala "Happy Scala Programming ^!^!^!"
这是因为是windows shell的特殊字符。因此,这个问题与scala本身无关,因为scala程序只接收快乐scala编程作为程序参数,感叹号被windows shell提示符使用

请查看这些堆栈溢出答案,以获得更深入的解释


  • 您必须在每个感叹号之前使用^,还需要将整个参数放在双引号中。因此,这将起作用:

    scala test1.scala "Happy Scala Programming ^!^!^!"
    
    这是因为是windows shell的特殊字符。因此,这个问题与scala本身无关,因为scala程序只接收快乐scala编程作为程序参数,感叹号被windows shell提示符使用

    请查看这些堆栈溢出答案,以获得更深入的解释


  • 它可能与正在使用的shell有关,在执行命令并将参数传递给程序之前,使用这些字符并对其进行处理。您可能想提及您的运行环境是什么,最具体的是您正在使用的命令shell。如果您包装
    双引号?c:\scala\samples>scala test1.scala快乐scala编程“!!!”快乐scala编程它可能与正在使用的shell有关,在执行命令并将参数传递给程序之前,使用这些字符并对其进行处理。您可能想提及您的运行环境是什么,最具体的是您正在使用的命令shell。如果您包装
    双引号?c:\scala\samples>scala test1.scala快乐scala编程“!!!”快乐scala编程因为我的要求是在新行中打印每个单词,所以我使用了以下内容(仅在特殊字符周围添加双引号)。非常感谢你的帮助。scala test1.scala快乐scala编程“^!^!^!”因为我的要求是在新行中打印每个单词,因此我使用了以下内容(仅在特殊字符周围添加双引号)。非常感谢你的帮助。scala test1.scala快乐scala编程“^!^!^!”