String. Teoria. Flashcards

(73 cards)

1
Q

Front

A

Back

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

📘 ¿Qué es un String en Java?

A

Un String en Java es una secuencia de caracteres, implementada como un objeto de la clase String. Es inmutable, lo que significa que su valor no puede cambiar una vez creado. 😊

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

🔒 ¿Qué significa que los Strings sean inmutables?

A

Significa que una vez creado un objeto String, su contenido no puede modificarse. Cualquier operación que parezca modificarlo en realidad crea un nuevo objeto. 🔁

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

📦 ¿Qué clase se utiliza para representar cadenas de texto en Java?

A

java.lang.String es la clase utilizada para representar cadenas de texto. Está incluida por defecto en todos los programas Java. ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

🎯 ¿Qué operador se sobrecarga para concatenar Strings?

A

El operador + se sobrecarga en Java para concatenar objetos de tipo String. También se puede usar concat(). ➕

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

🔎 ¿Qué método se usa para comparar contenido de dos Strings?

A

Se usa equals() para comparar contenido. No se debe usar == ya que compara referencias de memoria. ⚠️

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

👯‍♂️ ¿Qué diferencia hay entre == y equals() en Strings?

A

== compara si dos referencias apuntan al mismo objeto.
equals() compara si los contenidos son iguales. 🚨

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

♻️ ¿Qué método permite obtener una versión modificada de un String?

A

Métodos como replace(), toUpperCase(), substring() y otros devuelven nuevos Strings modificados. El original no cambia. 🔁

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

📏 ¿Qué método se usa para saber la longitud de un String?

A

length() devuelve el número de caracteres del String, incluyendo espacios y signos. ✂️

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

🧪 ¿Qué método verifica si un String contiene una subcadena?

A

contains() devuelve true si encuentra la subcadena especificada dentro del texto. 🔍

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

🧵 ¿Qué método convierte un String en un array de caracteres?

A

toCharArray() convierte el contenido del String en un arreglo de tipo char[]. 🧩

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Front

A

Back

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

🧠 ¿Qué método se usa para convertir un String a mayúsculas?

A

toUpperCase() devuelve una nueva cadena con todos los caracteres en mayúsculas. Útil para estandarizar comparaciones. 🔠

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

🧠 ¿Y para convertir un String a minúsculas?

A

toLowerCase() devuelve el mismo texto pero en minúsculas. 🔡

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

🧪 ¿Qué método permite comprobar si un String empieza con una subcadena?

A

startsWith(String prefix) devuelve true si el String comienza con el texto indicado. 📍

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

🧪 ¿Y para saber si termina con una subcadena?

A

endsWith(String suffix) verifica si el String termina con el texto indicado. 🔚

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

🧩 ¿Qué método devuelve una parte específica de un String?

A

substring(int inicio, int fin) devuelve la porción del texto entre las posiciones dadas. No incluye el carácter final. ✂️

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

🚫 ¿Qué pasa si haces substring con índices inválidos?

A

Lanza una excepción StringIndexOutOfBoundsException. Siempre valida los límites. ⚠️

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

🔠 ¿Qué método se usa para saber si dos Strings son iguales ignorando mayúsculas?

A

equalsIgnoreCase() compara dos Strings sin tener en cuenta si son mayúsculas o minúsculas. 🆚

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

🔢 ¿Cómo conviertes un String a un número entero?

A

Integer.parseInt(String) convierte texto en un int. Si el texto no es numérico, lanza NumberFormatException. 🧮

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

🔢 ¿Cómo conviertes un número a String?

A

String.valueOf(int) convierte un número en texto. También puedes usar + "" como truco. 🔁

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

📚 ¿Qué método devuelve el índice de la primera aparición de una letra?

A

indexOf(String) devuelve la posición de la primera aparición del fragmento buscado. 🕵️

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

📚 ¿Y para la última aparición?

A

lastIndexOf(String) devuelve la posición de la última aparición. 🔍

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

📜 ¿Qué hace trim()?

A

Elimina espacios en blanco al principio y al final de la cadena. No toca los del medio. 🧽

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
📜 ¿Qué hace `strip()`?
Hace lo mismo que `trim()` pero con mejor soporte Unicode. Requiere Java 11+. 🌍
26
🔁 ¿Qué hace el método `repeat(int count)`?
Devuelve un nuevo String que repite el contenido original la cantidad de veces especificada. Disponible desde Java 11. 🔂
27
🧮 ¿Qué tipo de dato devuelve `charAt(int index)`?
Devuelve un carácter (`char`) en la posición indicada del String. Recuerda que empieza desde 0. 🔤
28
📦 ¿Qué hace el método `concat()`?
Concatena dos Strings. Es equivalente a usar `+`, pero menos utilizado. ➕
29
🌐 ¿Cómo concatenar varios Strings con delimitador?
Con `String.join(delimiter, elements...)` puedes unir múltiples Strings con separador entre ellos. 🔗
30
🔒 ¿Qué clase se puede usar para Strings modificables?
`StringBuilder` o `StringBuffer` permiten modificar el contenido sin crear nuevos objetos. 🛠️
31
🧵 ¿Cuál es la diferencia entre `StringBuilder` y `StringBuffer`?
`StringBuilder` no es seguro para múltiples hilos (más rápido). `StringBuffer` es seguro para hilos, pero más lento. ⚙️
32
🆚 ¿String es una clase primitiva?
No, `String` es una clase de objetos. Aunque se trata de forma especial, no es un tipo primitivo. 🚫
33
🔄 ¿Qué operador se puede usar para concatenar Strings?
El operador `+` permite concatenar Strings de forma rápida. Internamente crea un `StringBuilder`. ➕
34
📌 ¿Qué significa que los Strings estén en el String Pool?
Java guarda los literales de Strings en una zona especial de memoria llamada String Pool, para ahorrar recursos. ♻️
35
🔐 ¿Cómo se crea un String que no esté en el String Pool?
Usando `new String("texto")` se fuerza la creación de un nuevo objeto, fuera del pool. 🆕
36
🧠 ¿Qué es interning en Strings?
Es el proceso de almacenar un solo objeto `String` por cada valor literal. Se puede usar `.intern()` para forzar esto. 🧬
37
⚖️ ¿`==` puede devolver true con Strings?
Sí, pero solo si las referencias apuntan al mismo objeto. Esto suele pasar con literales (por el String Pool). ✅
38
📋 ¿Qué método convierte un String a un array de palabras?
`split(" ")` separa un texto en palabras, usando los espacios como delimitador. 📖
39
📍 ¿Qué hace `matches(String regex)`?
Verifica si el String cumple exactamente un patrón de expresión regular. Devuelve `true` o `false`. 🧪
40
📥 ¿Cómo leer entrada de texto del usuario como String?
Con `Scanner scanner = new Scanner(System.in); String texto = scanner.nextLine();` 🎤
41
📈 ¿Cuál es el uso típico de `StringBuilder`?
Se usa para construir Strings mediante concatenaciones repetidas sin crear múltiples objetos. Muy eficiente. 🚀
42
🧯 ¿Qué excepción lanza `substring()` si los índices son incorrectos?
`StringIndexOutOfBoundsException` si se pasa un índice fuera de rango. ⚠️
43
Front
Back
44
📚 ¿Qué significa que `String` es una clase final?
`String` no puede ser heredada ni extendida. Esto garantiza su seguridad e inmutabilidad. 🔒
45
🧪 ¿Qué método devuelve true si el String es exactamente igual a otro (incluyendo mayúsculas)?
`equals()` compara el contenido de dos Strings respetando las mayúsculas y minúsculas. 🔍
46
🧪 ¿Qué método devuelve true si el String contiene otra cadena específica?
`contains(String s)` devuelve `true` si el texto contiene la subcadena indicada. 🔎
47
🧵 ¿Qué método usamos para verificar si un String empieza con un carácter específico?
`startsWith("c")` devuelve `true` si el texto empieza con 'c'. 📍
48
🎯 ¿Qué devuelve `length()` si el String está vacío?
Devuelve 0, ya que no hay caracteres en el texto. 🧮
49
🧪 ¿Qué diferencia hay entre `length` para arrays y `length()` para Strings?
`length` (sin paréntesis) es una propiedad de arrays. `length()` (con paréntesis) es un método de Strings. ⚠️
50
📋 ¿Qué método se usa para dividir un String por espacios, comas u otros símbolos?
`split(String regex)` divide el texto según un patrón (expresión regular). 🔪
51
🚫 ¿Qué ocurre si accedes a un índice fuera del rango del String?
Se lanza una excepción `StringIndexOutOfBoundsException`. Siempre valida los límites. 🚨
52
📌 ¿Cómo se representa una comilla doble dentro de un String?
Con una barra invertida: `"\"Hola\""` ➡️ Resultado: "Hola". 🧵
53
🧬 ¿Qué método se usa para verificar si un String está vacío o solo tiene espacios?
`texto.trim().isEmpty()` elimina espacios y luego verifica si quedó vacío. 🧽
54
🧮 ¿Qué hace `compareTo()` en Strings?
Compara alfabéticamente dos Strings y devuelve un número: - 0 si son iguales - Negativo si el primero va antes - Positivo si va después. 📊
55
📌 ¿Qué significa que los Strings sean seguros para hilos (thread-safe)?
Como son inmutables, no hay riesgo de que múltiples hilos modifiquen el mismo objeto. 🔐
56
📋 ¿Qué método se usa para verificar si un String está vacío o es nulo en una sola línea?
`texto == null || texto.isEmpty()` o `texto == null || texto.trim().isEmpty()` si quieres ignorar espacios. ✅
57
🧼 ¿Qué método reemplaza todas las apariciones de una letra?
`replace(oldChar, newChar)` reemplaza todos los caracteres iguales. 🔁
58
🧪 ¿Qué método permite validar un patrón exacto en un String?
`matches(String regex)` devuelve `true` si el String cumple exactamente el patrón. 🧪
59
📂 ¿Qué devuelve `split(" ")` cuando hay varios espacios consecutivos?
Crea elementos vacíos en el array por cada espacio adicional. Para evitarlo, usa `split("\\s+")`. 📄
60
📏 ¿Qué método permite extraer una parte del String desde cierta posición hasta el final?
`substring(inicio)` devuelve desde esa posición hasta el final. ✂️
61
📏 ¿Y si queremos desde el principio hasta cierta posición?
`substring(0, fin)` devuelve desde el inicio hasta fin (sin incluirlo). 📍
62
🌐 ¿Qué hace el método `intern()`?
Devuelve la versión canónica del String en el pool de Strings. Ahorra memoria. ♻️
63
📋 ¿Qué método se usa para comprobar si un String tiene solo letras?
`matches("[a-zA-Z]+")` devuelve `true` si el String contiene solo letras. 🔠
64
🧾 ¿Qué método usamos para verificar si un String está compuesto solo por dígitos?
`matches("\\d+")` devuelve `true` si el texto solo contiene números. 🔢
65
💬 ¿Qué pasa si haces `null + "hola"`?
Devuelve el texto `'nullhola'`. `null` se convierte en String automáticamente. 💡
66
🧱 ¿Qué método convierte un String en una lista de caracteres?
`toCharArray()` devuelve un arreglo de `char`. 🧩
67
🎛️ ¿Cómo comparar dos Strings alfabéticamente sin importar mayúsculas?
Usa `compareToIgnoreCase()` para obtener orden sin distinguir entre mayúsculas y minúsculas. 🔤
68
🧪 ¿Qué método devuelve true si un String contiene solo espacios?
`texto.trim().isEmpty()` es la forma correcta de comprobarlo. 🧼
69
🔡 ¿Qué método devuelve un carácter individual según su posición?
`charAt(int index)` devuelve el carácter de esa posición (desde 0). 🔍
70
🔐 ¿Qué hace el método `valueOf()`?
Convierte casi cualquier tipo de dato (int, double, boolean, etc.) en un String. 🎯
71
🧪 ¿Qué hace `String.format()`?
Permite crear Strings formateados como en printf. Ej: `String.format("Hola %s", nombre)`. 📝
72
🔁 ¿Qué método usar para reemplazar texto solo una vez?
`replaceFirst(regex, replacement)` reemplaza solo la primera coincidencia. 🪄
73
📥 ¿Qué método de Scanner se usa para leer una línea completa de texto?
`scanner.nextLine()` lee todo lo que el usuario escriba hasta pulsar Enter. ⌨️