String Manipulation · Manipulación de Cadenas
| English | Español |
|---|---|
| immutable/ɪˈmjuːtəbl/ | inmutables |
Strings and indexing
- A
Stringis a sequence of characters, numbered from0. - In
"HELLO", index0is'H', index1is'E', … index4is'O'. s.length()gives the count of characters; the last index islength() - 1.- Off-by-one errors here are the most common String bug.
Cadenas e índice
- Una
Stringes una secuencia de caracteres, numerados desde0. - En
"HELLO", el índice0es'H', el índice1es'E', … el índice4es'O'. s.length()devuelve la cantidad de caracteres; el último índice eslength() - 1.- Los errores off-by-one son el error más común en Strings.
substring
s.substring(start, end)returns the characters from indexstartup to but not includingend."HELLO".substring(1, 3)→"EL"(indices1and2, not3).s.substring(start)(one argument) goes fromstartto the end.- The result's length is
end - start.
substring
s.substring(start, end)devuelve los caracteres desde el índicestarthasta pero sin incluirend."HELLO".substring(1, 3)→"EL"(índices1y2, no3).s.substring(start)(un solo argumento) va desdestarthasta el final.- La longitud del resultado es
end - start.
indexOf and equals
s.indexOf("lo")returns the first index where the text appears, or-1if not found.s.equals(t)tests whether two Strings have the same characters — returns aboolean.- Use
.equals(), never==, to compare String contents. ==compares references (addresses), not the characters.
indexOf y equals
s.indexOf("lo")devuelve el primer índice donde aparece el texto, o-1si no se encuentra.s.equals(t)comprueba si dos Strings tienen los mismos caracteres; devuelve unboolean.- Usa
.equals(), nunca==, para comparar el contenido de un String. ==compara las referencias (direcciones), no los caracteres.
Strings are immutable
- A String is immutable 不可变: its characters can never be changed once created.
- Methods like
substringandtoUpperCasereturn a new String — they don't edit the original. s.toUpperCase();alone does nothing visible; you must store the result:s = s.toUpperCase();- Immutability is why String methods always hand back a fresh value.
Las cadenas son inmutables
- Un String es inmutable: sus caracteres nunca pueden ser modificados una vez creados.
- Métodos como
substringytoUpperCasedevuelven un nuevo String; no editan el original. s.toUpperCase();solo no tiene efecto visible; debes almacenar el resultado:s = s.toUpperCase();- La inmutabilidad es por lo que los métodos de String siempre devuelven un valor fresco.
Compare String contents with .equals(), never ==. == tests whether two references point to the same object, not whether the characters match — so a == b can be false even when both are "cat". And Strings are immutable: s.toUpperCase() returns a new String and leaves s unchanged unless you reassign s = s.toUpperCase();.
Compara el contenido de un String con .equals(), nunca con ==. == verifica si dos referencias apuntan al mismo objeto, no si los caracteres coinciden; por tanto, a == b puede ser false incluso cuando ambos son "cat". Y los Strings son inmutables: s.toUpperCase() devuelve un nuevo String y deja a s sin cambios a menos que reasignes s = s.toUpperCase();.
Working with "HELLO":
"HELLO".length()→5; index0is'H', index4is'O'."HELLO".substring(1, 4)→"ELL"(indices1, 2, 3)."HELLO".indexOf("L")→2(firstL);.equals("hello")→false(case differs).
Trabajando con "HELLO":
"HELLO".length()→5; el índice0es'H', el índice4es'O'."HELLO".substring(1, 4)→"ELL"(índices1, 2, 3)."HELLO".indexOf("L")→2(primeraL);.equals("hello")→false(diferencia de mayúsculas/minúsculas).
A String is indexed from 0 (last index length()-1). substring(start, end) returns indices start to end-1; indexOf finds a position (or -1). Compare contents with .equals(), not ==. Strings are immutable — methods return a new String, so reassign to keep the change.
Una String se indexa desde 0 (último índice length()-1). substring(start, end) devuelve índices de start a end-1; indexOf busca una posición (o -1). Compara el contenido con .equals(), no con ==. Los Strings son inmutables: los métodos devuelven un String nuevo, así que debes reasignar para mantener el cambio.
Indexing HELLO from 0 · Indexación HELLO desde 0
substring(1, 4) takes indices 1, 2, 3 → ELL. · substring(1, 4) toma los índices 1, 2, 3 → ELL.
In the String "HELLO", which character is at index 0? · En la Cadena "HELLO", ¿qué carácter está en el índice 0?
Strings are indexed from 0, so index 0 is 'H'. · Las cadenas se indexan desde 0, por lo que el índice 0 es 'H'.
What does "HELLO".substring(1, 3) return? · ¿Qué devuelve "HELLO".substring(1, 3)?
Indices 1 and 2 (up to but not including 3) → EL. · Índices 1 y 2 (hasta pero sin incluir 3) → EL.
To compare whether two Strings have the same characters, you should use... · Para comparar si dos Cadenas tienen los mismos caracteres, debes usar...
.equals() compares contents; == compares references. · .equals() compara el contenido; == compara las referencias.
s.toUpperCase(); on its own changes the String s in place. · s.toUpperCase(); por sí solo cambia la Cadena s in situ.
Strings are immutable — you must reassign s = s.toUpperCase();. · Las cadenas son inmutables — debes reasignar s = s.toUpperCase();.
What does "HELLO".indexOf("L") return (the first L)? · ¿Qué devuelve "HELLO".indexOf("L") (la primera L)?
The first 'L' is at index 2. · La primera 'L' está en el índice 2.