Чтение из командной строки и печать отдельных значений в списке - PullRequest
0 голосов
/ 02 октября 2019

Я должен передать список чисел в командной строке, и он должен распечатать различное значение в списке.

object Dup {
  def main(args: Array[String]): Unit = {
    val list = args.map(_.toInt)
    val distinct = list.distinct
    println("Distinct: "+distinct)
  }
}

Ожидаемый результат должен быть как

Input $ scala dup.scala 1 3 5 3 7 3 1 1 5
Output 1 3 5 7

Факт:

Exception in thread "main" java.lang.NumberFormatException: For 
input string: "1,2,1,3,1"

1 Ответ

0 голосов
/ 02 октября 2019

Если вы используете такие аргументы командной строки, как «1,2,3,4,5,6»

, это должно работать:

  object DemoAbc extends App {
  val ar: List[Option[Int]] = args.toList.flatMap(_.split(",")).map(_.toIntOption).distinct
  ar.foreach(println)
}
output: Some(1)Some(2)Some(3)Some(4)Some(5)Some(6)

, если вы хотите удалить этиНекоторые также вы можете использовать это:

object DemoAbc extends App {
  val ar: List[Int] = args.toList.flatMap(_.split(",")).flatMap(_.toIntOption).distinct
  ar.foreach(print)
}
output 123456

это вернет все целые числа, которые могут быть преобразованы, если вы дадите аргументы, как это: "1,2,3,4,5,6,%"

будет выдавать тот же вывод без Some (значение).

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...