Sup y'all。下面感觉像是Scala的悲剧性浪费。任何人都可以保存此代码吗?
val tokenSplit = token.split(":")(1)
val candidateEntityName = tokenSplit.substring(0,tokenSplit.length-1)
if(!candidateEntityName.equals(entityName)) removeEnd = true
答案 0 :(得分:2)
应该像:(未经测试)
val removeEnd = !(token.split(":")(1).dropRight(1).equals(entityName))
或:
val removeEnd = !(token.split(":").last.dropRight(1).equals(entityName))
答案 1 :(得分:2)
使用正则表达式匹配输入的不同解决方案。它还处理数据不符合预期的情况(您当然可以扩展您的正则表达式以满足您的需求)。
val removeEnd = """<(\w+):(\w+)>""".r.findFirstMatchIn(token).map(!_.group(2).equals(entityName)).getOrElse(throw new Exception(s"Can't parse input: $token"))
如果您想默认为false:
val removeEnd = """<(\w+):(\w+)>""".r.findFirstMatchIn(token).exists(!_.group(2).equals(entityName))
答案 2 :(得分:2)
这是(您不需要使用equals
):
val removeEnd = token.split(":")(1).init != entityName