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

アイテムリスト/配列を作成してから、配列を解析してi1またはi2を確認できます。

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

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

} 
于 2013-02-01T22:21:08.543 に答える
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 に答える