Avatar ·

¿Cómo trabajar con strings en Java?

¡Hola a todos! Empecé a estudiar Java y me encontré con la falta de comprensión sobre el trabajo con strings. Aparentemente leí que String es un objeto immutable (inmutable), pero en la práctica surgen preguntas.

Problema: Tengo una lista de strings que necesito unir con comas, pero algunos valores pueden ser null. Intento hacerlo en un bucle, pero obtengo NullPointerException o una coma extra al final.

Esto es lo que probé (código simplificado):

List<String> items = Arrays.asList("apple", null, "banana", "cherry");
String result = "";
for (String item : items) {
    if (item != null) {
        result += item + ",";
    }
}
// Obtengo "apple,banana,cherry," — coma extra al final
System.out.println(result);

También he oído sobre StringBuilder, pero no entiendo cuándo usarlo en lugar de la concatenación normal con '+'. En algunos ejemplos vi que para una simple suma...