Questa non è una vera risposta, perché io non uso qui l'operatore ternario.
Se è necessario concatenare le stringhe di rimuovere i vuoti è possibile scrivere una funzione generica (senza controllo degli errori, nessuna ottimizzazione, la prenda come esempio):
public static String join(String[] array, char separator) {
StringBuffer result = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
if (array[i] != null && array[i].length() != 0) {
if (result.length() > 0)
result.append(separator);
result.append(array[i]);
}
}
return result.toString();
}
E 'piuttosto più lungo della "linea" versione ma funziona indipendentemente dal numero di stringhe che si desidera unire (e si può cambiare per usare un numero variabile di parametri). Renderà il codice dove lo userai molto più chiaro di qualsiasi tipo di albero if
.
Qualcosa di simile a questo:
public static String join(char separator, String... items,) {
StringBuffer result = new StringBuffer();
for (String item: items) {
if (item != null && item.length() != 0) {
if (result.length() > 0)
result.append(separator);
result.append(item);
}
}
return result.toString();
}
fonte
2012-05-14 08:49:09
Naturalmente sì, ma non pensi che è molto più facile da leggere con "plain" if? Voglio dire: conosci l'operatore ternario ma per utilizzarlo a cascata non è chiaro per te, quindi sarà meno chiaro per chi leggerà il tuo codice. –
E gli altri quattro scenari? Sono possibili anche loro? – Alnitak
Sì, è possibile. Tuttavia, non userei l'operatore ternario per questo. – NPE