SORU
8 ŞUBAT 2011, Salı


Java: eğer numaralama belirli bir dize içeriyorsa, Onay?

Sorunum şu...eğer varsa bile, () ArrayList numaralama eşdeğer arıyorum.() içerir;.

İşte kod benim sorunumu bir örnek:

enum choices {a1, a2, b1, b2};

if(choices.???(a1)}{
//do this
} 

Şimdi, Dizeleri bir ArrayList iyi yolu burada olacağının farkındayım ama durum/anahtar ile numaralama benim içeriğini başka bir yerde çalıştırmak için var. Dolayısıyla benim sorunum.

Bu yok gibi bir şey varsayarak Evet, nasıl giderim?

Teşekkürler!

CEVAP
8 ŞUBAT 2011, Salı


Bir de şunu dene:

public static boolean contains(String test) {

    for (Choice c : Choice.values()) {
        if (c.name().equals(test)) {
            return true;
        }
    }

    return false;
}

Bu şekilde ek numaralandırma değerleri daha sonra, kontrol ettim hepsi ekleme hakkında endişelenmenize gerek yok anlamına gelir.

Düzenleme:Eğer numaralama çok büyük bir HashSet değerleri sopa olabilir:

public static HashSet<String> getEnums() {

  HashSet<String> values = new HashSet<String>();

  for (Choice c : Choice.values()) {
      values.add(c.name());
  }

  return values;
}

Sadece yapabilirsin: true veya false döndüren values.contains("your string").

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • ipsy Makeup Tips

    ipsy Makeup

    19 ŞUBAT 2009
  • Truc Minh

    Truc Minh

    23 Ocak 2011