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

  • foreignimage

    foreignimage

    13 HAZİRAN 2006
  • natescamp

    natescamp

    30 NİSAN 2009
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009