SORU
17 Kasım 2009, Salı


Java: dönüştürmek List<String> birleştirilmiş bir dizeye

Javascript Array.join() vardır

js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve

Java böyle bir şey var mı? Kendimi StringBuilder ile bir şeyler yapmış olduğunu biliyorum

static public String join(List<String> list, String conjunction)
{
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list)
   {
      if (first)
         first = false;
      else
         sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}

...ama eğer böyle bir şey zaten komple cam parçası ise, bunu yapmanın bir anlamı yok.

CEVAP
18 Kasım 2009, ÇARŞAMBA


Apache Commons tüm başvuruları ince (ve çoğu kişinin ne şekilde kullanılır) ama Guava eşdeğer Joiner daha iyi bir API var.

Basit bir dava ile birleştirme yapabilirsiniz

Joiner.on(" and ").join(names)

ama aynı zamanda kolayca null ile anlaşma:

Joiner.on(" and ").skipNulls().join(names);

ya

Joiner.on(" and ").useForNull("[unknown]").join(names);

(yeterince commons-lang tercih kullanmak bence çok yararlı) ve Haritaları ile başa çıkmak için yeteneği:

Map<String, Integer> ages = .....;
String foo = Joiner.on(", ").withKeyValueSeparator(" is ").join(ages);
// Outputs:
// Bill is 25, Joe is 30, Betty is 35

vb hata ayıklama için son derece yararlıdır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • amc

    amc

    21 EYLÜL 2005
  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011