0

我有一个奇怪的问题要解决,

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

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
} 

但也是动态的,因此它可以找到枚举中的所有项目,任何人都可以帮我找到解决方案吗?提前致谢。

4

3 回答 3

1

您可以向您的枚举添加一个静态方法,称为类似的方法findInString(String s),它会为您循环values()并返回一个布尔值(如果找到它)。但这取决于您为什么要避免循环。显然,除了将循环松鼠到你看不到的地方之外,这没有任何作用。

于 2013-02-01T22:32:23.207 回答
1

也许这会有所帮助?

List<String> list = Collections.list(enumeration);
boolean b = list.contains("Searchstring");
于 2013-02-01T22:34:40.693 回答
1

您可以创建一个项目列表/数组,然后解析该数组以检查 i1 或 i2。

Item[] string = {"i1","i2"}

if(string.contains("i1")||string.contains("i2"))
{

} 
于 2013-02-01T22:21:08.543 回答