在scala中将分隔符作为命令行参数传递,并使用它来分割字符串

时间:2015-03-24 07:00:39

标签: scala

我有一个scala程序,我将“\ t”作为命令行输入。

在程序内部,我想根据从命令行传递的分隔符拆分字符串。

val splitter = args(0).charAt(0)

if(splitter == '\t')
      println("true")
else
     println("false")

这会打印“false”和分隔符“\”。

上述方法适用于“,”逗号分隔符。

请建议如何将选项卡或任何其他分隔符作为命令行参数传递,并将其用于拆分目的。

1 个答案:

答案 0 :(得分:1)

这是因为如果您在命令行中传递“\ t”,那么它将以双字符字符串\t形式出现,而不是单字符制表符。要做你想做的事,你不能只拿第一个字符(charAt(0)),因为你会错过t。相反,您必须通过从字符串\t转换为制表符来取消它。

一种简单的方法:

val splitter = args(0) match {
  case "\\t" => '\t'
  case x => x.head     // same as x.charAt(0)
}