2015-03-24 3 views
0

У меня есть программа scala, где я беру «\ t» в качестве ввода командной строки.Передача разделителя в качестве аргумента командной строки в scala и использование его для разделения строки

Внутри программы я хочу разбить строку на основе разделителя, переданного из командной строки.

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

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

Это печатает «ложные» и сплиттеры «\».

Вышеуказанный метод работает для «,» разделителя запятой.

Просьба предложить, как передать вкладку или любой другой разделитель в качестве параметра командной строки и использовать ее для цели разделения.

ответ

1

Это потому, что если вы передаете «\ t» в командной строке, то она входит в виде двухсимвольной строки \t, а не на односимвольной вкладке. Чтобы сделать то, что вы хотите, вы не можете просто взять первого персонажа (charAt(0)), так как вы пропустите t. Вместо этого вам придется отменить его, перейдя из строки \t в символ табуляции.

Простой способ:

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