Páginas

sábado, 22 de marzo de 2014

Manejo de Cadenas en Java

Una cadena es conjunto de caracteres (cadena en inglés "string") el cual se utiliza para poder almacenar palabras y frases. Un String es una cadena de caracteres, que no se puede modificar, leer su valor, extraer los caracteres, subcadenas, etc.; y para cualquier modificación en Java se creará una nueva cadena.

Los caracteres que conforman la cadena pueden ser letras(a,b,c,..) números (0,1,2,…) caracteres especiales (¡,@,#,$,…). Para la declaración una cadena se utiliza la clase String, donde los datos se definen entre comillas, de la siguiente forma:
        String cad;
        cad=”hola mundo”;

Para el manejo de cadenas podemos utilizarlo al igual que en los vectores a través de índices, es decir:
Si cad="informatica"

i n f o r m a t i c a
0 1 2 3 4 5 6 7 8 9 10

Los índices de una cadena se manejan desde la posición 0 hasta la cantidad de caracteres menos 1, en este caso la cadena "informatica" tiene 11 caracteres, es decir su longitud es 11, y los indices para acceder a cada caracter es desde 0 hasta la posicion 10.

Para extraer el caracter 't' que se encuentra en la posicion 7, se utiliza:

cad.charAt(7)


OPERACIONES CON CADENAS

Muchas de las operaciones básicas con cadenas (String's) son las operaciones con las palabras en una cadena, tales como: cuantas vocales contiene una palabra, contar cuantas palabras tiene una frase, eliminar la k-ésima palabra, invertir una palabra, etc.

Java tiene una infinidad de métodos en la clase String para manejar cadenas, de las cuales mostraremos las mas utilizadas.

length(). Devuelve la longitud (número de caracteres) de una cadena


EJEMPLO

String cad,cad1,cad2;
int tam;
cad="laboratorio";
tam=cad.length();
//en la variable se obtiene tam = 11

charAt (int pos). Devuelve el carácter que hay en una cierta posición


EJEMPLO

cad="laboratorio";
char car;
car=cad.charAt(4);
//obtenemos en la variable c el carácter que esta en 
//la posición 4, en este caso se obtiene car='r' 



toLowerCase(). Devuelve la cadena convertida a minúsculas

toUpperCase(). Devuelve la cadena convertida a mayúsculas


EJEMPLO

cad="Hola MUNDO";
cad2=cad.toLowerCase();
//en cad2 obtenemos la cadena cad convertida en //minúsculas, en este caso en cad2="hola mundo"

cad="Informatica";
cad2=cad.toUpperCase();
//en cad2 obtenemos la cadena cad convertida en //mayusculas, en este caso en cad2="INFORMATICA"

substring(int ini,int fin). Devuelve una subcadena: varias letras a partir de una posición incicial y fina


EJEMPLO

cad="Informatica";
cad2=cad.substring(2,7);
//en cad2 obtenemos la subcadena, en este caso desde la posición 2 hasta la posición 6 de cad
//en este caso en cad2 se tiene la subcadena "forma"

trim() Devuelve una cadena sin espacios de blanco iniciales ni finales


EJEMPLO

cad=" hola mundo ";
cad=cad.trim();
//elimina los espacios en blanco que están al princio y al final

concat(String cadena) Devuelve una cadena con la union de otra adicionada al final o al principio. También se pueden concatenar cadenas con el operador "+"


 EJEMPLO 1

cad="buenos";
cad2="días"
cad3=cad+" "+cad2+" "!!!";
//en cad3 se tiene el resultado "buenos días!!!"

EJEMPLO 2

cad="buenos";
cad2="días"
cad3=cad+cad2
//el resultado en cad3 es "diasbuenos"

equals(String cadena) Compara si las dos cadenas son iguales (tambien se puede usar "= =")


EJEMPLO

cad1="juan"
if(cad1.equals("juan")){
    System.out.print("son iguales")
}
//en este caso es igual

if(cad1 == "Juan")){
    System.out.print("son iguales");
}
else{
    System.out.print("NO son iguales");
}
// en este caso NO  es igual ya que la cadena "juan" no es igual a "Juan"

compareTo(String cadena2) Compara una cadena con otra (devuelve 0 si son iguales, negativo si la cadena es "menor" que cadena2 y positivo si es "mayor"). La comparacion es de caracter a caracter es decir comparando "ana" con "amigo" compara 'a' con 'a', luego 'n' con 'm' y asi sucesivamente.


EJEMPLO

cad1="carlos";
if(cad1.compareTo("ana")==0){
    System.out.print("son iguales");    
}
else{
   if(cad1.compareTo("ana")>0)
        System.out.print("cad1 es mayor");    
   else
        System.out.print("cad1 es menor");
}

EJEMPLOS

1. Dado una cadena contar cuantas vocales tiene.
Ejemplo:
Si cad=”informatica”, se tiene 5 vocales


import java.util.Scanner;
class cadena01 {
 
 public static void main(String[] args) {

  String cad;
  char car;
  int c;

  //introducimos una cadena por teclado
  System.out.println("Introduzca una cadena");
  Scanner lee=new Scanner(System.in);   
  cad=lee.nextLine();
  c=0;
  //recorremo la cadena
  for(int i=0;i<cad.length();i++){
   car=cad.charAt(i);
   //comparamos los caracteres extraidos con a,e,i,o,u
   switch (car)
   {
   case 'a' : c++;break;
   case 'e' : c++;break;
   case 'i' : c++;break;
   case 'o' : c++;break;
   case 'u' : c++;break;    
   }
  }
  System.out.println("la cadena "+cad +" tiene "+c+ " vocales" );
  V.CuentaVocales(cad);    
 }
}

2. Introducir una cadena (frase) y contar cuantas palabras contiene Ejemplo: Si cad=” buenos dias informatica”, se tiene 3 palabras  
import java.util.Scanner;

class cadena02 {
 
 public static void main(String[] args) {
  String cad;
  int c=0;
  //leemos una cadena por teclado
  System.out.println("Introduzca una cadena");
  Scanner lee=new Scanner(System.in);  
  cad=lee.nextLine();

  //concatenamos a la cadena un espacio en blanco para que cuente la ultima palabra
  cad=cad+" ";
  //recorremos la cadena
  for(int i=0;i<cad.length();i++){
   //comparamos si el caracter es un espacio en blanco
   if(cad.charAt(i)==' '){
    c++; //si el caracter es un espacio blanco encontramos una palabra
   }    
  }

  //mostramos el resultado
  System.out.println("la cadena "+cad+" tiene : "+ c +"  palabras");
 }
}





No hay comentarios:

Publicar un comentario