我想知道如何设置一个条目来验证Switch-Case语句中的字符串是否为空。让我向你展示:
String str = 'value'
switch(str){
case str == '':
println('Entered an empty value')
break
case str != '':
println('Entered value '+str)
break
case 'CoDe':
println('Entered special code '+str)
break
default:
println('Incorrect entry')
break
}
我知道如何设置带有值的条目(案例3),但我不知道如何设置带有空或非空字符串值的条目。
有什么帮助吗?
2条答案
按热度按时间a9wyjsp71#
我测试过了,我想我有答案了。
它之所以有效,是因为您有
case ""
,它是空字符串。这意味着其他一切都不是空的。其他所有内容都是默认设置:如果你不信服,我可以给你一个相同含义的不同例子。
您不需要第二个,因为只有在str不为空的情况下才进入Else分支!我将同样的逻辑应用于此案。它之所以有效,是因为Java中的
case "":
是有效的。ha5z0ras2#
正如所评论的,在Java中您需要的是一系列
if
测试。在
String
类中,您可以测试:isEmpty
)isBlank
)看那个code run live at Ideone.com。
在该代码块之前,我会添加一个空检查。
我发现Java中的
if - else if - else
结构在可读性方面很笨拙。switch
语法在显示正在测试的一系列可能性方面要好得多,这些可能性是相互排斥的,只有一个结果。我真希望Java能为一系列布尔表达式提供级联测试。我曾在另一种语言中使用过这样的功能。在那里,我发现级联布尔测试对于处理一系列业务规则非常实用。但是,唉,Java中没有这样的功能。要是布莱恩·戈茨接我的电话就好了。
我不认识Groovy。也许Groovy提供了另一种工具。