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

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012