Aquí se mencionan las 10 preguntas más frecuentes sobre cadenas en Java
-
¿Cómo comparar cadenas? ¿Qué usar: "
==
" oequals()
?En resumen, "
==
" compara referencias a cadenas, peroequals()
compara los valores contenidos en esas cadenas. Si no desea comprobar que dos cadenas son el mismo objeto, debe utilizarequals()
.También sería una buena idea conocer el concepto de grupo de cadenas .
-
¿Por qué
char[]
se prefieren las cadenas (String
) para proteger información confidencial?Las cadenas son inmutables . Esto significa que una vez creada una cadena, no se modificará hasta que se ejecute el recolector de basura. En el caso de una matriz, es bastante obvio que podemos cambiar sus elementos. De esta manera, la información confidencial (como una contraseña) no se almacenará en texto claro en ninguna parte del programa.
-
¿ Podemos pasar cadenas como parámetro cuando usamos una declaración de cambio ?
Sí, a partir de la versión 7 del JDK. Anteriormente, en la versión 6, esto no era posible.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
¿Cómo convertir una cadena a un valor entero?
int n = Integer.parseInt("10");
Lo mismo ocurre con otros tipos primitivos en Java.
-
¿Cómo dividir una cadena en líneas delimitadas por espacios?
La forma más sencilla es utilizar expresiones regulares. "
\s
" actúa como sustituto de caracteres de espacios en blanco como "\t
", "\r
", "\n
".String[] strArray = aString.split("\\s+");
-
<¿ Qué hace realmente el método
substring()
?En JDK 6, el método
substring()
mostraba una parte de los caracteres de una cadena existente, pero no creaba una instancia separada de la cadena. Para crear una nueva cadena, representada como una matriz de caracteres, puede agregar una cadena vacía, por ejemplo, como esta:str.substring(m, n) + ""
El resultado es una matriz de caracteres, que es nuestra nueva cadena. En ocasiones, este enfoque puede reducir el tiempo de ejecución del código porque el recolector de basura puede destruir cadenas grandes no utilizadas y almacenar solo subcadenas.
En Oracle JDK 7, el método
substring()
crea una nueva matriz de caracteres sin utilizar una existente. También puedes echar un vistazo al diagrama que representa la diferencia entre los métodos substring() en JDK 6 y JDK 7 . -
Cadena frente a StringBuilder frente a StringBuffer
String
vsStringBuilder
:StringBuilder
mutable, esto significa que podemos cambiar su contenido después de crear el objeto.StringBuilder
vsStringBuffer
:StringBuffer
sincronizado, lo que significa que funciona correctamente cuando se usa desde varios subprocesos al mismo tiempo, pero es más lento queStringBuilder
. -
¿Cómo repetir una línea varias veces?
En Python, simplemente podemos multiplicar una cadena por un número
n
y luego se repetirá n veces. En Java, podemos utilizar un métodorepeat()
de laStringUtils
clase de biblioteca Lang de Apache Commons.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcd
-
¿Cómo convertir una cadena en una 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
-
¿Cómo contar el número de apariciones de un determinado carácter en una cadena?
Utilice una clase
StringUtils
de la biblioteca Apache Commons Lang.int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
GO TO FULL VERSION