gpt4 book ai didi

scala - 如何基于字符对字符串进行模式匹配?

转载 作者:行者123 更新时间:2023-12-04 18:36:21 28 4
gpt4 key购买 nike

在我的代码中,字符串应具有以下结构 part1-part2-part3 。不同的部分由 - 分隔,并且只能有 3 个部分。

到目前为止,我已经使用了 splitString 方法,并且可以检查返回的 Array 的长度来验证结构:

val tagDetails: Array[String] = tag.split('-') //syntax of received tag is part1-part2-part3

if (tagDetails.length == 3) {
val course: String = tagDetails(0)
val subject: String = tagDetails(1)
val topic: String = tagDetails(2)
println("splitted tag " + course + ", " + subject + ", " + topic)
} else {..}

如何使用 match 做同样的事情?

最佳答案

您可以使用 match 解构拆分值数组。

val tag = "course-subject-topic"

tag.split('-') match {
case Array(course, subject, topic) =>
println("splitted tag " + course + ", " + subject + ", " + topic)
case _ => println("Oops")
}

模式匹配也可以有 if 保护,如下所示,
tag.split('-') match {
case Array(course, subject, topic) if course != subject =>
println("splitted tag " + course + ", " + subject + ", " + topic)
case _ => println("Oops")
}

引用 - https://docs.scala-lang.org/tour/pattern-matching.html

关于scala - 如何基于字符对字符串进行模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55884572/

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