Home | Java |C # |SQL |Manuales |Videos |


14

La Clase String

java_programmers_brain_screensaver_preview La clase String representa una cadena de caracteres. Todos los literales de la cadena tales como “abc” son implementados como instancias de ésta clase.
La clase String incluye métodos que permiten examinar los caracteres individuales de una cadena para compararlos, ubicarlos extraerlos como sub cadenas y para crear copias de una cadena convirtiendo todos sus caracteres a mayúsculas o minúsculas.
Java provee un soporte especial para la concatenación (unión) de cadenas con el operador (+). y para convertir otros objetos a cadenas.La concatenación de cadenas es implementada a través de la clase StringBuffer y su método append(). Las conversiones son implementadas a través del método toString() definido en la clase Object la cual es heredada por todas las clases en Java.

I.- PARA TENER EN CUENTA :
  1. La clase String pertenece al paquete java.lang.
  2. Existen diferentes formas para crear objetos String como las siguientes :
    • String str =”abc”;
    • char str[] = {‘a’,’b’,’c’};  //arreglo de caracteres
    • String str = new String (“abc”) ;  //objeto con valor inicial “abc”

  3. El lenguaje java proporciona el operador “+” para concatenar (unir) objetos String.

  4. Un objeto String representa una cadena de caracteres no modificable;por lo tanto, una operación como convertir a mayúsculas o minúsculas no modificará el objeto original sino que devolverá un nuevo objeto con la cadena resultante de esa operación el cual deberá ser guardado en otro objeto string.
II.- JERARQUÍA DE CLASES
image
III.- MÉTODOS MAS IMPORTANTES
  1. String (String valor) .- Se usa cuando se desea crear una cadena de caracteres :
    • String cadena = “Hola”
    • String cadena = new String (“Hola”); //Constructor de la clase String


  2. cadena.concat(string txt) .- Devuelve como resultado un nuevo objeto String resultado de concatenar dos cadena :

  3. String cadena = “Hola”         
    String result= cadena.concat(" Mundo");//El resultado será Hola mundo

  4. cadena.compareTo(String otra cadena) .- Compara lexicográficamente la cadena con otra cadena , esta comparación es caracter por caracter  teniendo en cuenta que las mayúsculas son mayores que las minúsculas – esto es de acuerdo al código ASCII o UNICODE – según esto devuelve :


    • < 0 : si cadena < otra cadena
    • = 0 : si cadena = otra cadena
    • > 0 : si cadena > otra cadena
    • Ejemplo :
    • JUAN > juan
    • Juan > Carlos
    • JUAN > JUAn
    • abcde > abcdefg

  5. cadena.toIgnoreCase(String otra cadena) .- Hace lo mismo que compareTo pero con la única diferencia que no se hace diferencia entre mayúsculas y minúsculas ; es decir : JUAN = juan
  6. cadena.length() .- Devuelve la longitud o número de caracteres de la cadena :

    String cad="Hola Mundo";
    int cant = cad.length();// El valor de cant será 10
  7. cadena.toLowerCase() .- Convierte a minúsculas las letras mayúsculas de la cadena
  8. cadena.toUpperCase().- Convierte en mayúsculas las letras minúsculas de la cadena.


    String cad1="Esto Es Una Prueba";
    String cad2=cad1.toUpperCase();//cad2 será igual a : ESTO ES UNA PRUEBA.

  9. cadena.trim () .- Elimina los espacios en blanco que puedan haber al principio o al final de la cadena.


    String cad1="     Esto Es Una Prueba   ";
    String cad2=cad1.toLowerCase();//cad2=Esto Es Una Prueba.

IV.- MÉTODOS

CONSTRUCTORES
Constructor
Descripción
String( )
Crea un nuevo objeto String vacío sin caracteres.
String (byte[ ] bytes)
Crea un nuevo objeto String inicializado con los caracteres equivalentes a cada número guardado en el arreglo de bytes.
String (char[ ] value)
Crea un nuevo objeto String inicializado con los caracteres contenidos en el arreglo dado como parámetro.
String (String cadena)
Crea un nuevo objeto String inicializado con el valor dado como parámetro.
MÉTODOS
Tipo de retorno
Método
Descripción
char
charAt(int index)
Retorna el carácter correspondiente al índice dado como parámetro.
int
compareTo(String otraCadena)
Retorna como entero el resultado de la comparación entre la cadena que lo llama con otraCadena. Si el parámetro devuelto es "0" significa que las dos cadenas son iguales; realizándose la comparación carácter con carácter diferenciándose las mayúsculas con las minúsculas.
int
compareToIgnoreCase(String otraCadena)
Retorna como entero el resultado de la comparación de la cadena que lo llama con otraCadena. Si éste entero es 0 significa que ambas cadenas son iguales; siendo la comparación carácter con carácter pero ignorando la diferencias entre mayúsculas y minúsculas.
String
concat(String otraCadena)
Retorna el resultado de la concatenación de la cadena con otraCadena dada como parámetro.
boolean
equals(Object otroObjeto )
Retorna true si la cadena que lo llama es igual al objeto enviado como parámetro.
boolean
equalsignoreCase(String otraCadena)
Retorna true si la cadena que lo llama es igual a la cadena dad  como parámetro ignorando las diferencias entre mayúsculas y minúsculas.
int
indexOf (String cad)
Retorna la posición de la primera ocurrencia encontrada de la cadena dada como parámetro dentro de la cadena que llama al método.
int
indexOf (String cad, int ini)
Retorna la posición de la primera ocurrencia encontrada de la cadena dada como parámetro pero comenzando la búsqueda desde la posición ini dada como parámetro.
int
lastIndexOf (String cad)
Retorna la posición de la ultima ocurrencia de la cadena dada como parámetro.
int
lastIndexOf (String cad,int ini)
Retorna la posición de la última ocurrencia de la cadena dada como parámetro buscando en retroceso a partir de la posición dada como parámetro.
int
length ( )
Retorna el número de caracteres que contiene la cadena.
String
replace (char car1,char car2)
Retorna una nueva cadena como resultado de reemplazar todas las ocurrencias del carácter "car1" por el carácter "car2" dados como parámetros.
String
replaceAll (String cad1,String cad2)
Retorna una nueva cadena como resultado de reemplazar todas las concurrencias de la sub cadena cad1 por la sub cadena cad2 dada como parámetro.
boolean
startsWith (String cad)
Retorna true si la cadena que llama al método empieza con la subcadena cad dada como parámetro.
String
subString(int posIni)
Retorna una subcadena cuyo primer carácter empieza en la posición posIni dada como parámetro.
String
subString(int posIni,int posFin)
Retorna una subcadena cuyo primer carácter empieza en la posición posIni y  termina con el carácter de la posición  posFin.
String
toLowerCase( )
Retorna una nueva cadena como resultado de convertir todos los caracteres a minúsculas.
String
toUpperCase ( )
Retorna una nueva cadena como resultado de convertir todos los caracteres a mayúsculas.
String
trim ( )
Retorna una nueva cadena como resultado de omitir los espacios en blanco al inicio y al final de la cadena.

V.- EJEMPLOS

  1. Diseñe una aplicación que permita manipular los caracteres de una subcadena a través de los métodos vistos.

    image

    • Creamos un nuevo proyecto al cual colocaremos en un paquete; en este nuevo paquete vamos a imageagregar un JFrame al cual le daremos el tipo de distribución GridLayout con 2 columnas ; hecho esto en la primera columna colocamos un JPanel (jPanel1) y le damos una distribución de BorderLayout ( en este panel colocamos en el NORTE una caja de texto , en el CENTRO un ScrollPane y encima un txtArea …por último en el SUR colocamos una etiqueta) ; en la segunda columna colocamos otro JPanel (JPanel2) con distribución GridLayout on 2 columnas y 7 filas y simplemente arrastramos botones hacia este panel y veremos que se irán ordenando como se ve en la imagen anterior. Se les recuerda que visiten esta entrada para tener mas información sobre los tipos de distribución y esta entrada para ver como crear un proyecto con NetBeans. Bien , hecho todo esto la vista de objetos se verá de esta forma (Observar la forma de como se esta distribuido)



    • Ahora vamos a programar cada botón , para esto solo basta con darle doble clic y enseguida NetBeans nos llevará al método correspondiente :



      • Vamos a programar el botón longitud el cual nos dirá la cantidad de caracteres de la cadena que ingresaremos en el textArea ; para poder obtener el valor escrito en la caja de texto usaremos el método getText y para escribir el resultado en el área de texto usaremos el método setText.


        private void btnLongitudActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // lee el mensaje
        String cadena=txtMensaje.getText();
        
        // obtiene la longitud
        int longi = cadena.length();
        
        // imprime longitud
        txtSalida.setText("El texto ingresado tiene: "+longi+" caracteres.");
        }


      • Regresamos al diseñador y le hacemos doble clic al botón Separar Palabras y ingresamos el siguiente código :


        private void btnSeparaPalabrasActionPerformed(java.awt.event.ActionEvent evt) {                 
        // lee el mensaje
        String cadena=txtMensaje.getText();
        // obtiene la longitud
        int longi = cadena.length();
        // limpia area
        txtSalida.setText("");
        // inicializa contador de palabras
        int contpala=0;
        // separa palabras por el espacio en blanco
        do {
        // no considera espacios al inicio ni al final
        cadena=cadena.trim();
        // ubica posicion del primer caracter blanco
        int pos=cadena.indexOf(' ');
        // obtiene palabra encontrada
        String palabra="";
        if (pos>0)
        palabra=cadena.substring(0,pos+1);
        else
        palabra=cadena;
        // imprime palabra encontrada
        txtSalida.append(palabra+"\n");
        // ignora palabra encontrada
        cadena=cadena.substring(palabra.length());
        // actualiza contador de palabras
        contpala++;
        } while(cadena.length()>0);
        // imprime contador de palabras
        txtSalida.append("\n"+contpala+" palabras encontradas.");
        }



      • Hacemos lo mismo con el botón de mayúsculas

        private void btnMayusculasActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        // lee el mensaje
        String cadena=txtMensaje.getText();
        // lo convierte a mayúsculas
        cadena = cadena.toUpperCase();
        // imprime nueva cadena en mayusculas
        txtSalida.setText("Texto convertido a mayúsculas:\n"+cadena);
        }

      • Y con el botón de minúsculas :

        private void btnMinusculasActionPerformed(java.awt.event.ActionEvent evt) {                         
        // lee el mensaje
        String cadena=txtMensaje.getText();
        // lo convierte a minúsculas
        cadena = cadena.toLowerCase();
        // imprime nueva cadena en minusculas
        txtSalida.setText("Texto convertido a minúsculas:\n"+cadena);
        }


      • Lo propio con el botón de caracteres y los demás botones ( que por motivo de tiempo y espacio no se van a colocar pero lo pueden descargar pulsando el botón descargar )


      image
    • Por ultimo ejecutamos con F6
btn_6

14 Comentarios:

Anónimo dijo...

no se puede descargar

Anónimo dijo...

Podrias poner un ejemplo de la funcion cadena.toIgnoreCase(String otra cadena)
Te lo agradeceria mucho
y si puede agregarme es: memo_ermeck@hotmail.com

Anónimo dijo...

Email: sonic_salvador@hotmail.es

Hola me gustaria q publicaran un codigo en NetBeans para concatenar una frase usando setText y getText. por ejemplo ste ejercicio

Se pide que realice un programa en java cuya ventana principal contenga los siguientes elementos:
- Un cuadro de texto llamado txtNombre.
- Un cuadro de texto llamado txtCiudad.
- Una etiqueta llamada txtFrase.
- Un botón con el texto “Aceptar” llamado btnAceptar.

El programa funcionará de la siguiente forma:
- El usuario introducirá un nombre en el cuadro de texto txtNombre. Por ejemplo “Juan”.
- El usuario introducirá una ciudad en el cuadro de texto txtCiudad. Por ejemplo “Jerez”.
- Cuando el usuario pulse el botón “Aceptar”, entonces aparecerá un mensaje en la etiqueta llamada txtFrase indicando como se llama y donde vive. Por ejemplo:
Usted se llama Juan y vive en Jerez.
- Cuando el usuario pulse el botón “Desactivar”, entonces los dos cuadros de texto se desactivarán. Cuando el usuario pulse el botón “Activar”, los dos cuadros de texto se volverán a activar.
Tendrá que programar el evento actionPerformed de los botones.
Tendrá que usar la concatenación de cadenas. Recuerde que se pueden concatenar cadenas a través del operador +.
Tendrá que usar el método setText para colocar el texto en la etiqueta y el método getText para recoger el texto de cada cuadro de texto.

Muchas Gracias

Victor Luna dijo...

tu probema es simple amigo, crea un JFrame con lo que necesites, luego programa lo siguiente:
en el actionPerformed del boton para mostrar el mensaje
String Nombre=txtNombre.getText();
String Ciudad=txtCiudad.getText();
txtFrase.setText("Usted se llama "+Nombre+" Y vive en "+Ciudad);
en el actionperformed del btnDesactivar
txtNonbre.setEnabled(false);
txtCiudad.setEnabled(false);
txtFrase.setEnabled(false);
en el action performed del btnActivar
txtNonbre.setEnabled(true);
txtCiudad.setEnabled(true);
txtFrase.setEnabled(true);
txtNombre.requestFocus();

Alguna duda mi msn es luna12d@hotmail.com

Anónimo dijo...

podrias publicar entrar dato en un string y almacenarlo en un vector a[], por poner un ejemplo vector a[], te lo agradezco

Anónimo dijo...

como convierto 3 letras en mayusculas. ejemplo: Ana Luisa castañedA.. respondeme please

Unknown dijo...

solicito ayuda con este programa....
1. el programa debera solicitar el ingreso de una cadena de carateres
2. salida debera mostrar las siguientes soluciones.
2.1 tamaño de la cadena ejemplo; funcion: xxxxx In; leonardo out: 8
2.2 cambiar a mayusculas ejemplo; funcion: xxxxx in; leonardo out: LEONARDO
2.3 cambiar a minusculas ejemplo; funcion: xxxxx in: Leonardo out: leonardo
2.4 eliminar espaciones entre palabras ejemplo; funcion: xxxxx in: leonardo donis aroche out: leonardodonisaroche
2.5 invertir palabra ejemplo; funcion: xxxxx in: leonardo out adranoel

Unknown dijo...

Hola Wilber, ¿Haz revisado el ejemplo que adjunto en este post ? Creo que eso soluciona gran parte de lo que pides.

Unknown dijo...

Buen aporte excelente!!!!! gracias ;)

Anónimo dijo...

hola amigos

Anónimo dijo...

necesito los códigos de los otros botones

Anónimo dijo...

No se ve

Anónimo dijo...

NECESITO LOS CODIGOS DE LOS OTROS BOTONES!!!!!!!!!

Anónimo dijo...

x2

Publicar un comentario

Ingresa tu comentario .... con el siguiente formato EMAIL - COMENTARIO para poder responderte :