При создании массива из файла выбросить знаки препинания

Как при создании массива сделать так, чтобы считывался только текст без знаков препинаний? Вот код:

  def main(args: Array[String]) {
    val source = scala.io.Source.fromFile("hello.txt")
    val lines = try source.mkString finally source.close()

    val arr: Array[String] = lines.split(" ")

Ответы (1 шт):

Автор решения: dedkot

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

Пример:

val str = "Hello, World! How are you?"
val arr: Array[String] = str.split("""[\W\n]+""")

На выходе в массиве будут элементы:

Hello
World
How
are
you

Здесь в регулярке """[\W\n]+""" я указал, что делить строку необходимо там, где попадётся \W (любой символ, кроме цифры, буквы или знака подчеркивания) или \n (перевод строки) при одном или более вхождений (+). Тройные кавычки используются для записи неинтерпретируемых строк (не обрабатывает обратные слеши, чтобы лишний раз их не экранировать).

Более подробно про регулярные выражения можно почитать в литературе или на ресурсах интернета.

→ Ссылка