/ / Odovzdanie oddeľovača ako argumentu príkazového riadku v scale a jeho použitie na rozdelenie reťazca - scala

Odovzdávanie oddeľovača ako argumentu príkazového riadku v scade a jeho použitie na rozdelenie reťazca - scala

Mám program scala, kde ako vstup príkazového riadku beriem „t“.

Vo vnútri programu chcem rozdeliť reťazec na základe oddeľovača odovzdaného z príkazového riadku.

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

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

Toto vytlačí slovo „nepravda“ a rozdeľovač „“.

Vyššie uvedená metóda funguje pre „,“ oddeľovač čiarky.

Prosím, navrhnite, ako môžem odovzdať tabulátor alebo akýkoľvek iný oddeľovač ako parameter príkazového riadku a použiť ho na účely rozdelenia.

odpovede:

1 pre odpoveď č. 1

Je to preto, lebo ak zadávate „t“ na príkazovom riadku, prichádza ako dvojznakový reťazec t, nie karta s jedným znakom. Ak chcete robiť to, čo chcete, nemôžete vziať iba prvý znak (charAt(0)) pretože vám bude chýbať t. Namiesto toho ho budete musieť prekonvertovať z reťazca t na znak tabulátora.

Jednoduchý spôsob:

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