Подсчитать количество вхождений данной подстроки в файл, Kotlin - PullRequest
0 голосов
/ 26 мая 2019

Мне нужно написать функцию, которая подсчитывает, сколько раз встречается подстрока в тексте, и возвращает карту (строка - рассчитывает)

Я пытался сделать это, используя .contains, но он не учитывает множественные вхождения в одном слове («la» в «lalala»), и теперь я застрял в том, как это исправить.

fun countSubstrings(inputName: String, substrings: List<String>): Map<String, Int> {

    val map = mutableMapOf<String, Int>()
    var tempCounter = 0
    for (i in 0 until substrings.size) {

        for (line in File(inputName).readLines()) {

            for (word in line.split(" ")) {
                if (word.contains(substrings[i], true)) tempCounter++ 
            }
        }
        map.put(substrings[i], tempCounter)
        tempCounter = 0
    }
    return map
}

Итак, я ожидаю, что эта функция будет подсчитывать слова, 2-3 подстроки символов и даже 1 подстроку символов.

1 Ответ

0 голосов
/ 26 мая 2019

Я имею в виду, есть StringUtils.html # countMatches , который является частью общего достояния Apache.

 StringUtils.countMatches(null, *)       = 0
 StringUtils.countMatches("", *)         = 0
 StringUtils.countMatches("abba", null)  = 0
 StringUtils.countMatches("abba", "")    = 0
 StringUtils.countMatches("abba", "a")   = 2
 StringUtils.countMatches("abba", "ab")  = 1
 StringUtils.countMatches("abba", "xxx") = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...