Traducido de: Las 10 preguntas principales de Java Strings
En pocas palabras, "==" prueba si las referencias de dos cadenas son las mismas y igual () prueba si los valores de las dos cadenas son iguales. A menos que desee comprobar si dos cadenas son el mismo objeto, es mejor utilizar iguales ().
Sería mejor si conociera el mecanismo de persistencia de cadenas.
Las cadenas son inmutables, lo que significa que una vez creadas, permanecen allí hasta que el recolector de basura las limpia. Con una matriz, puedes modificar explícitamente sus elementos. De esta manera, la información sensible a la seguridad (como las contraseñas) no aparecerá en ningún otro lugar del sistema.
Para Java7 la respuesta es sí. A partir de JDK7, podemos usar String como condición de la declaración de cambio. Antes de JDK6, no podíamos usar String como condición de la declaración de cambio.
// ¡solo java 7! cambiar (str.toLowerCase()) { case "a": valor = 1; break case "b": valor = 2;
int n = Integer.parseInt("10");
Sencillamente, se utiliza con tanta frecuencia que a veces se ignora.
Simplemente podemos usar expresiones regulares para descomponerlo. "/s" representa caracteres de espacio en blanco, como " ", "/t", "/r", "/n".
String[] strArray = aString.split("//s+");
En JDK6, el método substring() proporciona una ventana a una matriz de caracteres que representa una cadena existente, pero no crea una nueva cadena. Para crear una nueva cadena representada por una nueva matriz de caracteres, agregue una cadena vacía de la siguiente manera:
str.subcadena(m, n) + ""
Esto crea una matriz de caracteres completamente nueva que representa la nueva cadena. El enfoque anterior a veces hace que el código sea más rápido porque el recolector de basura recolectará cadenas grandes no utilizadas y solo conservará una subcadena.
En Oracle JDK 7, substring() crea una nueva matriz de caracteres sin utilizar la matriz existente. El diagrama del método substring() en JDK 6 y JDK 7 ilustra las diferencias entre substring() en JDK 6 y JDK 7.
String vs StringBuilder: StringBuilder es mutable, lo que significa que se puede cambiar su valor después de la creación.
StringBuilder vs StringBuffer: StringBuffer es sincrónico, lo que significa que es seguro para subprocesos, pero más lento que StringBuilder.
En Python podemos repetir una cadena multiplicándola por un número. En Java, podemos repetir una cadena mediante el método repetir() de la clase StringUtils en el paquete Apache Commons Lang.
Cadena str = "abcd";Cadena repetida = StringUtils.repeat(str,3);//abcdabcdabcd
String str = "17 de septiembre de 2013"; Fecha fecha = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);System.out.println(date);//Mar 17 de septiembre 00:00 :00EDT 2013
Utilice la clase StringUtils del paquete Apache Commons Lang.
int n = StringUtils.countMatches("11112222", "1");System.out.println(n);
Pregunta adicional: Cómo detectar que una cadena contiene solo letras mayúsculas
Traducido de: Las 10 preguntas principales de Java Strings