Gestión de cadenas en Java
Una cadena es una secuencia de caracteres. Las cadenas son una parte fundamental de la mayoría de los programas, así pues Java tiene varias características incorporadas que facilitan la manipulación de cadenas.
Java tiene una clase incorporada en el paquete java.lang que encapsula las estructuras de datos de una cadena. Esta clase, llamada String es la representación como objeto de una matriz de caracteres que no se puede cambiar.
Hay una clase que la acompaña, llamada StringBuffer, que se utiliza para crear cadenas que pueden ser manipuladas después de ser creadas.
Creación de cadenas
Dado que los Strings son valores constantes, Java incluye un atajo para un literal de cadena estándar, en el que un valor de cadena se puede encerrar entre comillas dobles:
String s = "abc";
Uno de los métodos mas habituales que se utilizan en un String es length, que devuelve el n§. de caracteres de una cadena:
String s = "abc";
System.out.println (s.lenght ());
Conversión de cadenas
StringBuffer tiene una versión sobrecargada de append para cada tipo posible. Por lo tanto, cuando se utiliza `+' para concatenar una variable, se llama a la versión adecuada de append para esa variable. El método append realmente llama a un método estático de String llamado valueOf para construir la representación tipo cadena. Para tipos simples, valueOf crea simplemente una representación de cada int o float. Para objetos, valueOf llama al método to String con ese objeto. Cada clase implementa toString, con una implementación por defecto que se encuentra en la clase Object. Es bueno el sobrescribir toString y presentar una versión propia de cadena para las clases. El ejemplo siguiente muestra una clase que sobrescribe toString para mostrar los valores de sus variables de instancia.
String s = "abc";
System.out.println ("abc".lenght ());
Comparación
El método reginMatches se utiliza para comparar una región especifica que se parte de una cadena con otra región de otra cadena. Hay dos variantes de regionMatches, una le permite controlar si es importante la diferenciación entre mayúsculas/minúsculas; la otra asume que si lo es.
boolean regionMatches (int toffset, String otra,)
int offset, int longitud; // si importa la diferencia
boolean regionMatches (boolean ignorarMaysc, int toffset,
String otra, int offset, int longitud); // no importa la diferencia