Scala-计算字符串中的特定字符数(以函数样式)
我可以用下面的代码计算特定的字符串Scala-计算字符串中的特定字符数(以函数样式),scala,functional-programming,Scala,Functional Programming,我可以用下面的代码计算特定的字符串 var count = 0 for (i <- "HelloWorldHHHH") { if (i == 'H') { count = count + 1 } println(count) 有人能帮我用纯函数的方式写同样的功能吗 我尝试了下面的方法,但不确定哪里出了问题 val count1 = "Hello".foldLeft(0)((x,_) match { case k if(k == 'h') => x +1}) 最后一个代码有一
var count = 0
for (i <- "HelloWorldHHHH") {
if (i == 'H') {
count = count + 1
}
println(count)
有人能帮我用纯函数的方式写同样的功能吗
我尝试了下面的方法,但不确定哪里出了问题
val count1 = "Hello".foldLeft(0)((x,_) match { case k if(k == 'h') => x +1})
最后一个代码有一些错误,是否有人可以帮助我修复错误或给出正确的解决方案您可以删除if,只需在case块中插入您的字符
"Hello".foldLeft(0) {(acc,c) => c match {
case 'l' => acc + 1
case _ => acc
}
}
您可以删除if,只需在case块中插入您的角色
"Hello".foldLeft(0) {(acc,c) => c match {
case 'l' => acc + 1
case _ => acc
}
}
“helloworldhhh”.count(=='H')
已经是纯函数式的,而且它看起来是我的首选选项,因为它非常简短且可读
更多选择:
折叠:
"HelloWorldHHHH".foldLeft(0){case(count, char) => if (char == 'H') count + 1 else count }
"HelloWorldHHHH".collect{ case 'H' => 1 }.sum
为理解起见,在a之后求和。请注意,您可以使用防护装置(如果有):
“helloworldhhh”.count(=='H')
已经是纯函数式的,而且它看起来是我的首选选项,因为它非常简短且可读
更多选择:
折叠:
"HelloWorldHHHH".foldLeft(0){case(count, char) => if (char == 'H') count + 1 else count }
"HelloWorldHHHH".collect{ case 'H' => 1 }.sum
为理解起见,在a之后求和。请注意,您可以使用防护装置(如果有):
如果您确实希望在生产代码中执行此操作,我建议使用stdlib
count
方法:
"HelloWorldHHHH".count(_ == 'H')
为了便于学习,您可以使用foldLeft
:
"HelloWorldHHHH".foldLeft(0) { case (sum, char) =>
if (char == 'H') sum + 1 else sum
}
如果您确实希望在生产代码中执行此操作,我建议使用stdlib
count
方法:
"HelloWorldHHHH".count(_ == 'H')
为了便于学习,您可以使用foldLeft
:
"HelloWorldHHHH".foldLeft(0) { case (sum, char) =>
if (char == 'H') sum + 1 else sum
}
将其更改为
val count1=“Hello”.foldLeft(0){case(acc,char)=>if(char='l')acc+1 else acc}
谢谢。。我明白,我做错了什么。将其更改为val count1=“Hello”。foldLeft(0){case(acc,char)=>if(char='l')acc+1 else acc}
谢谢。。我明白我做错了什么谢谢你GabrielEthak你Gabriel