Kotlin 数一数
我有以下代码:Kotlin 数一数,kotlin,Kotlin,我有以下代码: fun main(args:Array<String>){ var a = "banana, eat, one" var a1 = a1.split("a").toMutableList() a1.sortBy { it.toCharArray().count { it == 'a' } } } fun main(args:Array){ var a=“香蕉,吃,一个” var a1=a1.split(“a”).toMutableList() a1.sortBy{
fun main(args:Array<String>){
var a = "banana, eat, one"
var a1 = a1.split("a").toMutableList()
a1.sortBy { it.toCharArray().count { it == 'a' } }
}
fun main(args:Array){
var a=“香蕉,吃,一个”
var a1=a1.split(“a”).toMutableList()
a1.sortBy{it.toCharArray().count{it=='a'}
}
这段代码允许我按a的编号对列表a1进行排序,但我希望每个单词(香蕉、吃、一)都有a的编号。我想创建一个HashMap,如下所示:
(香蕉,3)
(吃,1)
(一,0)
但我不知道是否有一个函数允许我这样做
你能帮我吗
谢谢。funmain(args:Array){
"banana, eat, one".split(",").associateBy({ it }, { it.count { it.toLowerCase() == 'a' } })
val input=“香蕉,吃,一个”
//分词
val split=input.split(“,”)
val map=HashMap()
for(拆分中的单词){
var countA=0
//计算每个单词的字符“a”
for(字中的字符){
如果(字符='a'| |字符=='a'){
伯爵++
}
}
图[字]=countA
}
println(地图)
}
您现有的代码没有编译,但我假设您打算在第二行中使用a
,并在,
上拆分。如果是这样,您可以使用创建一个映射,其中键是您的单词,值是每个中'a'
的计数:
val a = "banana, eat, one"
val a1 = a.split(", ").toMutableList()
val a2 = a1.associateWith { word -> word.count { char -> char == 'a' } }
println(a2) // {banana=3, eat=1, one=0}
因为Kotlin的设计是为了减少繁文缛节。它有许多方法来简化这些算法。现在我看到了java。您的解决方案非常手动,类似于java,但它确实可以工作。不应该被否决,这不是最好的答案。你说的没错。谢谢你的反馈。您的解决方案更短,阅读速度更快。但是当您不能编写这样的代码并且需要问这个问题时,我的代码很可能更容易理解它的功能。
val a = "banana, eat, one"
val a1 = a.split(", ").toMutableList()
val a2 = a1.associateWith { word -> word.count { char -> char == 'a' } }
println(a2) // {banana=3, eat=1, one=0}