我需要编写一个函数,用于计算文本中子字符串出现的次数并返回一个映射(字符串-计数)。
我尝试使用.contains方法制作它,但它无法计算单个单词中的多个出现次数(例如“lalala”中的“la”),现在我不知道该如何解决。请帮忙修改代码。
因此,我希望这个函数可以计算单词、2-3个字符的子字符串甚至是1个字符的子字符串。"最初的回答"
我尝试使用.contains方法制作它,但它无法计算单个单词中的多个出现次数(例如“lalala”中的“la”),现在我不知道该如何解决。请帮忙修改代码。
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个字符的子字符串。"最初的回答"
fun countSubstring(s: String, sub: String): Int = s.split(sub).size - 1
。 - DanielM