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

  • finalcall07

    finalcall07

    11 NİSAN 2008
  • spyib

    spyib

    9 Ocak 2007
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009