2013-02-01 56 views
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

为什么你不能使用循环? – smk

+0

这是功课吗? –

+0

@PaulVargas看起来像它,考虑OP说“我的问题的限制” –

回答

1

你可以一个静态方法添加到您的枚举称为像findInString(String s),做环比values()你,如果它发现它返回一个布尔值。但这取决于你为什么要避免循环。很显然,除了松鼠,你不能看到它的环路,它什么也不做。

1

您可以创建一个Item列表/数组,然后通过数组解析来检查i1或i2。

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

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

} 
1

也许这可能有帮助吗?

List<String> list = Collections.list(enumeration); 
boolean b = list.contains("Searchstring");