AnyCompiler

Strings

Un String de Java es inmutable — una vez creado, nunca puede cambiarse. Concatenar con + no modifica el string original; construye y devuelve uno completamente nuevo, y .length() reporta el número de caracteres de un string.

public class Main {
    public static void main(String[] args) {
        String first = "Hello";
        String second = "World";
        String combined = first + ", " + second + "!";
        System.out.println(combined);
        System.out.println("length = " + combined.length());
    }
}
Output
Hello, World!
length = 13

== versus .equals()

== compara referencias de objects — si dos variables apuntan exactamente al mismo object en memoria — mientras que .equals() compara el contenido real. Dos objects String creados por separado con new String(...) contienen texto igual pero son objects distintos, por eso == puede devolver false aunque los strings se vean idénticos; comparar strings casi siempre significa recurrir a .equals().

public class Main {
    public static void main(String[] args) {
        String a = new String("java");
        String b = new String("java");
        System.out.println(a == b);
        System.out.println(a.equals(b));
    }
}
Output
false
true

Siguiente: classes y objects — definir una class, fields, constructors, y crear instances.

Practice exercise

Dado String s = "rust lang", usa substring para extraer solo "rust" (los primeros 4 caracteres), luego imprímelo.