我試圖找出如何採取一個逗號分隔的字符串作爲輸入,並檢測是否有內部的任何字符串不符合以下一組檢測非匹配字符串
{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);
}
}
你能告訴我們你試過了嗎? –