我有一个scala程序,我将“\ t”作为命令行输入。
在程序内部,我想根据从命令行传递的分隔符拆分字符串。
val splitter = args(0).charAt(0)
if(splitter == '\t')
println("true")
else
println("false")
这会打印“false”和分隔符“\”。
上述方法适用于“,”逗号分隔符。
请建议如何将选项卡或任何其他分隔符作为命令行参数传递,并将其用于拆分目的。
答案 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)
}