При создании массива из файла выбросить знаки препинания
Как при создании массива сделать так, чтобы считывался только текст без знаков препинаний? Вот код:
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 шт):
Метод 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 (перевод строки) при одном или более вхождений (+). Тройные кавычки используются для записи неинтерпретируемых строк (не обрабатывает обратные слеши, чтобы лишний раз их не экранировать).
Более подробно про регулярные выражения можно почитать в литературе или на ресурсах интернета.