Las siguientes son las 10 preguntas más frecuentes acerca de las cadenas de Java.
1. ¿Cómo comparar cadenas? ¿Usar «==» o usar igual ()?
En resumen, «==» prueba si las referencias son iguales y equals () prueba si los valores son iguales. A menos que desee verificar si dos cadenas son el mismo objeto, siempre debe usar equals ().
Sería mejor si conociera el concepto de prácticas de cuerdas.
2. ¿Por qué char[] preferido sobre String para información confidencial de seguridad?
Las cadenas son inmutables, lo que significa que una vez que se crean, permanecerán sin cambios hasta que Garbage Collector se active. Con una matriz, puede cambiar explícitamente sus elementos. De esta manera, la información confidencial de seguridad (por ejemplo, contraseña) no estará presente en ninguna parte del sistema.
3. ¿Podemos usar una cadena para la declaración de cambio?
Sí a la versión 7. Desde JDK 7, podemos usar una cadena como condición de cambio. Antes de la versión 6, no podemos usar una cadena como condición de cambio.
// java 7 only!
switch (str.toLowerCase()) {
case "a":
value = 1;
break;
case "b":
value = 2;
break;
}
|
// ¡solo Java 7! switch (str.toLowerCase ()) {caso «a»: valor = 1; rotura; caso «b»: valor = 2; rotura; }
4. ¿Cómo convertir cadenas a int?
int n = Integer.parseInt("10");
|
int n = Integer.parseInt («10»);
Simple, pero de uso frecuente y, a veces, ignorado.
5. ¿Cómo dividir una cadena con espacios en blanco?
String[] strArray = aString.split("s+");
|
Cuerda[] strArray = aString.split (» s +»);
6. ¿Qué método de subcadena () realmente hace?
En JDK 6, el método substring () da una ventana a una matriz de caracteres que representa la Cadena existente, pero no crea una nueva. Para crear una nueva cadena representada por una nueva matriz de caracteres, puede agregar una cadena vacía como la siguiente:
str.substring (m, n) + «»
Esto creará una nueva matriz de caracteres que representará la nueva cadena. El enfoque anterior a veces puede hacer que su código sea más rápido, porque Garbage Collector puede recolectar la cadena grande no utilizada y conservar solo la subcadena.
En Oracle JDK 7, substring () crea una nueva matriz de caracteres, no usa la existente. Consulte el diagrama para mostrar la diferencia de subcadena () entre JDK 6 y JDK 7.
7. String vs StringBuilder vs StringBuffer
String vs StringBuilder: StringBuilder es mutable, lo que significa que puede modificarlo después de su creación.
StringBuilder vs StringBuffer: StringBuffer está sincronizado, lo que significa que es seguro para subprocesos pero más lento que StringBuilder.
8. ¿Cómo repetir una cadena?
En Python, podemos simplemente multiplicar un número para repetir una cadena. En Java, podemos usar el método repeat () de StringUtils del paquete Apache Commons Lang.
String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd
|
String str = «abcd»; Cadena repetida = StringUtils.repeat (str, 3); // abcdabcdabcd
9. ¿Cómo convertir cadenas a la fecha?
String str = "Sep 17, 2013";
Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
System.out.println(date);
//Tue Sep 17 00:00:00 EDT 2013
|
String str = «17 de septiembre de 2013»; Date date = new SimpleDateFormat («MMMM d, aa», Locale.ENGLISH) .parse (str); System.out.println (fecha); // Mar 17 de septiembre 00:00:00 EDT 2013
10. ¿Cómo contar el número de apariciones de un carácter en una cadena?
Utilice StringUtils de apache commons lang.
int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);
|
int n = StringUtils.countMatches («11112222», «1»); System.out.println (n);
Uno mas
¿Sabes cómo detectar si una cadena contiene solo letras mayúsculas?