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ş:
İnt dönüştürmek için nasıl [List]<T...
Nasıl Java yöntemi olabilirdi String i...
Java bir dizeye dize dizisi dönüştürme...
Java: HashMap dönüştürmek için nasıl&l...
Java ile nasıl bir char veya String bi...