Sen, hiç fazla kod gerekmez.
String phones = Stream.of(string1, string2, string3, string4)
.filter(s -> ! s.isEmpty()) // Filter out empty strings
.collect(Collectors.joining("~"));
Boş değerleriniz varsa, bunları da filtreleyebilirsiniz.
String phones = Stream.of(string1, string2, string3, string4)
.filter(Objects::nonNull) // <-- Filter out nulls
.filter(s -> ! s.isEmpty())
.collect(Collectors.joining("~"));
DÜZENLEME: Java 8
Eğer Java önceki bir sürümünü kullanıyorsanız önce, bir yaklaşım bir kez istenilen işlemi tanımlamak ve sonra tekrar tekrar aramak.
public static void join(StringBuilder sb, String s) {
if ((null != s) && ! s.isEmpty()) {
if (0 < sb.length()) {
sb.append("~");
}
sb.append(s);
}
}
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
String string1 = "foo", string2 = "", string3 = null, string4 = "bar";
join(sb, string1);
join(sb, string2);
join(sb, string3);
join(sb, string4);
System.out.println(sb.toString());
}
İlk çözümler sorunsuz çalışıyor! Yanlış yazılmış mıyım yoksa yanlış mı yazdım? –
Yığın akışına hoş geldiniz. Üzgünüz, ilk sorumunuz bazılarından olumsuz tepki aldı. Bütün cevaplar da düştü. İdeal olarak, önce yardımcı olmalıyız. Sizi siteden uzaklaştırmasına izin verme. ["İyi bir soru nasıl sorabilirim?"] (Http://stackoverflow.com/help/how-to-ask) ve Jon Skeet'in ["Mükemmel Soruyu Yazmak"] bölümünü okumakta yardımcı olabilirsiniz. //codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/). –