我已经在这样的scala方法中放了一个支票。
def run(beamServices: BeamServices): Unit = {
if ((beamServices.strategy.planSelectorForRemoval.equals("Check with list of strings")) && (!beamServices.modeChoiceClass.equals("ModeChoiceLCCM"))) {
logger.error("Simulation breaks")
}
}
以上检查仅适用于单个String
,但我必须检查大约10 Strings
。如果我像上面那样在这里放置10张支票,那将是非常繁琐且冗长的代码。因此,我决定不再像这样单独写10张支票,而是创建一个这样的字符串列表或Arrray
。
val listOfString = Array{"String1","String2","String3"....."String10"}
并尝试在这种情况下实现List
。
def run(beamServices: BeamServices): Unit = {
if ((beamServices.strategy.planSelectorForRemoval.equals(listOfString.foreach(x => x))) && (!beamServices.modeChoiceClass.equals("ModeChoiceLCCM"))) {
logger.error("Simulation breaks")
}
}
我知道上述实现是错误的。我只是写了它,目的是让您了解我要说的话。 请给我一些经典的解决方案
答案 0 :(得分:4)
我正在猜测,您要问的是如何检查给定字符串是否与其他几个字符串之一匹配。
如果是这种情况,答案是使用Set
:
val stringsToMatch = Set("Foo", "Bar", "Baz")
if (!stringsToMatch(beamServices.modelChoice)) { doStuff }
答案 1 :(得分:0)
val listOfClasses = List("ClassA","ClassB","ClassC"....."ClassJ"}
def run(beamServices: BeamServices): Unit = {
if ((beamServices.strategy.planSelectorForRemoval.equals("check with 10 classes")) && (!listOfCLasses.contains(beamServices.modeChoiceClass))) {
logger.error("Simulation breaks")
}
}