我有一个奇怪的问题,我正在努力解决,
我有一个带有类似字符串的枚举
public enum Enumm{
Item1("i1"),
Item2("i2");
private String itemText;
private Enumm(String inText){
this.setitemText(inText);
}
// getter and setter for itemText not typing
}
现在在另一个类我要检查字符串inputString是否包含“i1”或“i2”但问题是我不能使用循环。
我知道我可以做到这一点
for(Enumm item: Enumm.values()){
if (inputString.contains(item.getItemText)) {
// do something
}
}
但我的问题的限制不允许我这样做
我正在寻找像
这样的东西if(inputString.contains(Enumm.Item1.getItemText||Enumm.Item2.getItemText)){
//do something
}
但也是动态的,以便它找到枚举中的所有项目 有谁能帮我找到解决方案?提前谢谢。
答案 0 :(得分:1)
您可以创建一个Item列表/数组,然后解析数组以检查i1或i2。
Item[] string = {"i1","i2"}
if(string.contains("i1")||string.contains("i2"))
{
}
答案 1 :(得分:1)
你可以在枚举中添加一个名为findInString(String s)
的枚举的静态方法,它为values()
执行循环,并在找到它时返回一个布尔值。但这取决于你为什么试图避免循环。显然,这除了松开你无法看到它的环路之外什么都不做。
答案 2 :(得分:1)
也许这会有所帮助?
List<String> list = Collections.list(enumeration);
boolean b = list.contains("Searchstring");