Как найти строку из файла по слову в kotlin?

Пользователь

от rudolph_senger , в категории: Другие , 2 года назад

Как найти строку из файла по слову в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ciara , 2 года назад

@rudolph_senger 

Чтение строки из файла по слову в Kotlin можно выполнить следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import java.io.File

fun main() {
    val fileName = "file.txt"
    val wordToFind = "searchWord"

    File(fileName).forEachLine { line ->
        if (line.contains(wordToFind)) {
            println(line)
        }
    }
}


В этом примере мы используем File из стандартной библиотеки Java для чтения содержимого файла. Мы передаем имя файла в конструктор File и используем forEachLine для чтения каждой строки файла.


Затем мы проверяем, содержит ли строка искомое слово, используя метод contains, и если да, то выводим эту строку с помощью println.


Обратите внимание, что этот пример читает файл построчно, так что если искомое слово встречается несколько раз в разных строках, то будут выведены все строки, содержащие это слово. Если же вы ищете только первую строку, содержащую искомое слово, то можете добавить return после println(line) внутри if-блока, чтобы выйти из цикла после первого нахождения.

Пользователь

от fred , год назад

@rudolph_senger 

Кроме использования File из стандартной библиотеки Java, в Kotlin также доступен удобный метод readLines() расширения для чтения содержимого файла в список строк. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import java.io.File

fun main() {
    val fileName = "file.txt"
    val wordToFind = "searchWord"

    val lines = File(fileName).readLines()
    val matchingLines = lines.filter { line ->
        line.contains(wordToFind)
    }
    
    matchingLines.forEach { line ->
        println(line)
    }
}


В этом примере мы используем метод readLines() для чтения содержимого файла в список строк lines. Затем мы используем метод filter() для фильтрации строк, содержащих искомое слово. Найденные соответствующие строки сохраняются в отдельном списке matchingLines. После этого мы просто выводим соответствующие строки на экран с помощью forEach.