En realidad una
variable de tipo string, más que un típo propio
de Java es una clase tratada con todo rigor como un objeto más de Java.
En Java el contenido de las cadenas no se pueden modificar aun que se vuelva a definir la variable String, si en un programa se necesita modificar el contenido de una cadena lo más correcto seria utilizar la clase StringBuffer, la cual posee muchos metodos para este cometido como append() etc..
En este ejemplo definimos una cadena:
String miCadena = "Esto es una cadena";
No podemos modificar su contenido pero si podemos hacer que miCadena se refiera a otra cadena nueva:
miCadena = miCadena + "otra cadena";
En Java el contenido de las cadenas no se pueden modificar aun que se vuelva a definir la variable String, si en un programa se necesita modificar el contenido de una cadena lo más correcto seria utilizar la clase StringBuffer, la cual posee muchos metodos para este cometido como append() etc..
En este ejemplo definimos una cadena:
String miCadena = "Esto es una cadena";
No podemos modificar su contenido pero si podemos hacer que miCadena se refiera a otra cadena nueva:
miCadena = miCadena + "otra cadena";
En el siguiente
ejemplo muestra el hecho de que una cadena no puede ser modificada, y sin
embargo una variable de referencia puede modificarse para que apunte a una
nueva cadena para que parezca que se ha modificado la cadena original:
class miCadena{
String cadena1 = "PRIMERA CADENA";
String cadena2 = "SEGUNDA CADENA";
String cadena1 = "PRIMERA CADENA";
String cadena2 = "SEGUNDA CADENA";
public static void main( String args[] )
{
miCadena cad = new miCadena();
System.out.println( "Los valores originales de las cadenas son:" );
System.out.println( cad.cadena1 );
System.out.println( cad.cadena2 );
System.out.println( "Reemplaza cadena1 con otra cadena" );
cad.cadena1 = cad.cadena1 + " " + cad.cadena2;
System.out.println( "Nuevo valor de cadena1:" );
System.out.println( cad.cadena1 );
}
}
miCadena cad = new miCadena();
System.out.println( "Los valores originales de las cadenas son:" );
System.out.println( cad.cadena1 );
System.out.println( cad.cadena2 );
System.out.println( "Reemplaza cadena1 con otra cadena" );
cad.cadena1 = cad.cadena1 + " " + cad.cadena2;
System.out.println( "Nuevo valor de cadena1:" );
System.out.println( cad.cadena1 );
}
}
Ejemplo de StringBuffer
import java.lang.StringBuffer;
public class Prueba
{
public static void main(String []args)
{
StringBuffer a = new StringBuffer("Jose ");
a.append("Francisco");
System.out.println(a);
}
}
public class app4
{
public static void main(String []args)
{
String cadena = "Hola mundo";
// Secuencias de escape
System.out.println(cadena);
System.out.println("Hola \nmundo");
System.out.println("Hola \"mundo\"");
System.out.println("Hola \'mundo\'");
System.out.println("Hola \\mundo\\");
System.out.println("Hola\bmundo");
System.out.println("Hola \fmundo\f");
System.out.println("Hola \rmundo");
System.out.println("Hola\tmundo");
// Longitud del texto
// texto.length();
System.out.println(cadena.length()); // 10
System.out.println("Hola mundo".length()); // 10
// Recortar texto
// texto.substring(inicio, cantidad a recortar)
System.out.println(cadena.substring(0,5)); // Hola
System.out.println("Hola mundo".substring(0,5)); // Hola
System.out.println(cadena.substring(5,10)); // mundo
System.out.println("Hola mundo".substring(5,10)); // mundo
// Obtener el índice donde está ubicada la primera letra m
System.out.println(cadena.indexOf("m")); // 5
System.out.println("Hola mundo".indexOf("m")); // 5
// Recortar texto usando tamaño e índice
System.out.println(cadena.substring(cadena.indexOf("m"),cadena.length())); // mundo
// Obtener el índice donde está ubicada la última letra o
System.out.println(cadena.lastIndexOf("o"));
// Concatenar texto
System.out.println("Hola " + "mundo");
System.out.println("Hola ".concat("mundo"));
// Reasignar valor en la cadena
cadena = "mundo";
System.out.println(cadena); // mundo
cadena = "Hola";
System.out.println(cadena); // Hola
cadena = cadena + " mundo";
System.out.println(cadena); // Hola mundo
// Asignacion de texto a otras variables
String cadena1;
String cadena2;
cadena1 = cadena.substring(0,5);
cadena2 = " " + cadena.substring(5,10);
cadena = cadena1.concat(cadena2); // Hola mundo
// Eliminar espacios en una cadena
cadena = " Probando trim";
System.out.println(cadena.trim());
// Convertir la cadena a mayusculas
System.out.println(cadena.toUpperCase());
// Convertir la cadena a minusculas
System.out.println(cadena.toLowerCase());
}
}
Se te olvido señalar algo importante de la clase StringBuffer que es muy optimo para concatenar grandes cadenas que solo utilizar la clase String te lo pongo asi si con la clase String tardas concatenando 20 minutos (esto es si concatenas grandes cadenas de texto) con la clase StringBuffer solo tardarias como 30 segundos aproximadamente eso es muy importante porque es muy usado por muchos desarrolladores!!
ResponderEliminar