gpt4 book ai didi

string - 算法帮助 : I need help parsing a string that contains * as a wild card in scala

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:37 24 4
gpt4 key购买 nike

假设我有一个这样的字符串列表:

List("/", "/operators", "/assets/*")

和一个给定的字符串值

"/assets/css/main.css"

我想检查给定值是否在列表中,但是当出现 * 时,assets 之后的所有内容都应评估为 true,就好像它在字符串列表中明确说明一样,否则为 false。

if(givenStringValue is in List) true else false

我对 scala 还是很陌生,我应该如何解决这个问题?

最佳答案

基本上有2种情况。值在列表中,或者列表中有某个元素以 * 结尾并且也包含在值中。

scala 中的解决方案可以是:

def isInList(list: List[String], value: String) = 
list.exists(s => s == value || (s.last == '*' && value.startsWith(s.init)))

此处 s.last 生成字符串的最后一个字符,s.init 生成除最后一个字符之外的所有字符。

测试:

val list = List("/", "/operators", "/assets/*")
println(isInList(list, "/assets/css/main.css")) //true
println(isInList(list, "/assets/////////")) //true
println(isInList(list, "/operators")) //true
println(isInList(list, "/operators/")) //false
println(isInList(list, "/something")) //false

这也归功于 Rex Kerr,他在同一秒发布了完全相同的解决方案;)。

关于string - 算法帮助 : I need help parsing a string that contains * as a wild card in scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com