查找字符串是否包含在枚举中的任何字符串中

时间:2013-02-01 22:15:52

标签: java

我有一个奇怪的问题,我正在努力解决,

我有一个带有类似字符串的枚举

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
} 

但也是动态的,以便它找到枚举中的所有项目 有谁能帮我找到解决方案?提前谢谢。

3 个答案:

答案 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");