我试图找出如何采取一个逗号分隔的字符串作为输入,并检测是否有内部的任何字符串不符合以下一组检测非匹配字符串
{FF,SF,FB ,SB,Pause}
因此,当我解析字符串(可以是上述的任何组合),如果它检测到“FfdsG”,例如它应该抛出一个错误。我假设我可以使用某种正则表达式来完成这个或一系列if。
编辑....
我的执行不好吗?我将字符串转换为全部,然后进行比较。不管是什么我送作为输入(FB或FB,FF或其他),似乎其萎靡不振的一切都是坏...
`public static String check(String modes) {
String s = modes;
String lower = s.toLowerCase();
HashSet<String> legalVals = new HashSet<String>();
legalVals.add("ff");
legalVals.add("sf");
legalVals.add("fb");
legalVals.add("sb");
legalVals.add("pause");
String valToCheck = lower;
if (legalVals.contains(valToCheck)) { //False
String str = modes;
} else {
return "Bad value: " + modes;
}
return modes;
}
需要明确的是,输入的字符串可以是5个有效值的任意组合我列出。它可能是其中的1个或全部5.我只是试图检测是否在任何时候检测到的值不在列出的5上。我希望这是有道理的。
结束了以下。
String[] words = {"ff", "sf", "fb", "sb", "pause"};
List<String> validList = Arrays.asList(words);
String checkInput = lower;
for (String value : checkInput.split(","))
{
if(!validList.contains(value))
{
throw new Exception("Invalid mode specified: " + modes);
}
}
你能告诉我们你试过了吗? –