Вы находитесь на странице: 1из 15

CONCEPTOS BSICOS DE LA CLASE STRING

EN
JAVA

Por:
CARLOS A RODRIGUEZ C
Profesor Ingeniera Informtica
Universidad Pontificia Bolivariana

Medelln - Colombia

1
Tabla de Contenido

1 QUE ES UN OBJETO? 1

2 QU ES UNA CLASE? 1

3 COMO SE CREA UN OBJETO? 2

4 CARACTERES Y STRINGS EN JAVA 2


4.1 Declarando variables de tipo char 2

5 STRINGS EN JAVA 3
5.1 Declaracin de objetos String 3

5.2 Comparando cadenas de caracteres 6


5.2.1 El operador ==, en la comparacin de cadenas 6

5.3 El mtodo equals 6

5.4 El mtodo length() 7

5.5 El mtodo charAt ( ) 8

5.6 Mtodo compareTo 8

5.7 Mtodo toCharArray: 9

5.8 El mtodo substring: 10

5.9 El mtodo replace: 11

5.10 Mtodo trim: 12

5.11 Mtodo indexOf: 12

5.12 Mtodos toUpperCase y toLowerCase: 13

6 BIBLIOGRAFA 13
1 Que es un objeto?
Los objetos son la clave para entender tecnologa orientada a objetos1. Usted puede
mirar a su alrededor ahora y ver muchos ejemplos de objetos reales: su perro, su
escritorio, su televisin y su bicicleta.

Estos objetos reales comparten dos caractersticas comunes: Ellos todos tiene estados y
comportamientos. Por ejemplo, los perros tienen (nombre, color, procrear, estar
hambriento y comportamientos como (ladrar, menear la cabeza). Las bicicletas tienen
estados (cambio actual, movimiento de pedales, dos ruedas, numero de cambios) y
comportamiento (frenar, acelerar, desacelerar, cambiar cambios).

Los objetos del Software son modelados como los objetos del mundo real, por eso ellos
tambin tiene estados y comportamiento. Un objeto de Software mantiene sus estados en
una o ms variables. Una variable es un sitio que guarda un dato y que se identifica por
un nombre. Un objeto del software implemento su comportamiento, por medio de los
mtodos. Un mtodo es una funcin o subrutina asociada con un objeto.

2 Qu es una clase?
En el mundo real, usted a menudo tiene muchos objetos de la misma clase. Por ejemplo
su bicicleta es justamente una de muchas bicicletas en el mundo. Usando la terminologa
de la programacin orientada a objetos decimos que su objeto bicicleta es una instancia
de la clase de objetos conocidos como bicicleta. Las bicicletas tienen algunos estados y
comportamientos comunes. Si embargo cada estado de su bicicleta es independiente y
puede ser diferente del de otras bicicletas.
Cuando construyen bicicletas los fabricantes toman ventaja del hecho de que las
bicicletas comparten caractersticas, construyendo muchas bicicletas desde el mismo
plano.

En el software orientado a objetos, tambin es posible tener muchos objetos de la misma


clase que comparten caractersticas: rectngulos, jefes de grabacin, trozos de video.
Como en la fabricacin de la bicicleta, usted puede tomar ventaja del hecho de que los
objetos sean de la misma clase y usted puede crear un plano para estos objetos. Un plano
de software para los objetos es llamado una clase.

Definicin: Una clase es un plano o prototipo, donde se definen todas las propiedades y
mtodos comunes a los objetos de esa clase.

1
Es una metodologa de diseo de software que modela, objetos reales o abstractos usando clases y
objetos.

1
3 Como se crea un objeto?
Para crear una variable que sea una instancia de una clase u objeto se necesitan dos
pasos:
El primer paso es declarar una variable que tenga por tipo la clase de objeto que se va
representar en memoria, para ello siga la siguiente sintaxis:

Declaracin de variable En memoria la variable se puede ver as:

nombre_de_la_clase nombre_variable;

En este paso el objeto no ha sido creado, y se dice que el objeto no ha sido instanciado.

El segundo paso es crear una instancia u objeto de la clase, para ello se hace lo siguiente:

Creacin del objeto En memoria del computador

nombre_variable=new nombre_de_la_clase[ ];

La imagen, muestra que el objeto es creado


dinmicamente en memoria, y la variable
guarda la direccin de memoria donde se
inicia el almacenamiento del objeto.

Se dice entonces que la variable es una instancia de un objeto, cuando almacena la


direccin de memoria donde existe el objeto.

4 Caracteres y Strings en JAVA


En los programas en Java los caracteres se representan usando el tipo de dato tipo char.
Las constantes de tipo carcter se escriben encerrando entre comillas simples, ejemplo,
a, X, 7.
Java usa el estndar Unicote para representar las constantes char.

4.1 Declarando variables de tipo char


En los programas en Java, se pueden utilizar variables de tipo char as:
char nombre_variable;
o
char nombre_variable=cte;

2 Introduccin a String
Ejemplo:
En un programa en Java se podr declarar variables char as:
char ejemplo, deseo=x;
La declaracin anterior crea dos variables, una de nombre ejemplo, y otra de nombre
deseo, esta ltima almacena el carcter x.

Ejemplo:
El siguiente ejemplo muestra la relacin que existe entre enteros y caracteres en Java.

class Caracteres_Enteros{
public static void main(String[] args)
{
int dato;
char dato2;

System.out.print("Ingresar un numero entero menor a 255 ");


dato=ConsoleInput.getInt();
System.out.print("Ingresar un caracter ");
dato2=ConsoleInput.getChar();
System.out.println("El " + dato + " es el codigo Ascii que corresponde a el
caracter " + (char)dato);
System.out.println("El caracter "+ dato2 + " tiene por codigo Ascii " +
(int) dato2 );
}
}
El programa anterior tiene la siguiente salida cuando se ejecuta:

El programa toma un nmero entero y lo representa en carcter, para el ejemplo se


ingreso el numero 34 y el computador imprimi, las comillas dobles. Al programa se le
ingreso una a tildada y el programa nos dio el cdigo ASCII que es 160.
La expresin (char)dato, es un cast, que convierte un valor entero en char.
La expresin (int) dato2, es un cast, que convierte una valor char a entero.

5 Strings en Java
Un String o cadena de caracteres en un programa es, una secuencia de caracteres que se
tratan como un nico valor. En Java, se usa la clase String para crear variables objeto
para representar cadenas de caracteres en los programas.

5.1 Declaracin de objetos String


Para crear un objeto String en un programa Java, proceda as:
1. Declare la variable de tipo String as:

String nombre_variable;

2. Luego proceda a crear un objeto o instancia de la clase String as:

nombre_variable = Cadena de Caracteres;

3
Con la declaracin anterior, se crea un objeto de la clase String, la cadena as creada se
coloca en un lugar especial reservado para la mismas y, si posteriormente se crea otra
cadena con el mismo literal, no se aade un nuevo objeto a dicho espacio, sino que
utiliza el objeto existente.

Ejemplo:
Escriba un programa en Java que dado dos nmeros enteros a y b, el computador escriba
un mensaje determinado quien es el mayor y quien es el menor o si son iguales.
En el programa se debe usar una variable String para presentar el mensaje adecuado.
class Cadenas{
public static void main(String[] args){
String mensaje;
double a, b;

System.out.println("Ingresar un numero ");


a=ConsoleInput.getDouble();
System.out.println("Ingresar otro numero ");
b=ConsoleInput.getDouble();
if (a>b)
mensaje=" Mayor que ";
else
if (a<b)
mensaje=" Menor que ";
else
mensaje=" Igual que ";
System.out.println(a + mensaje + b);
}
}

Otras maneras de instanciar un objeto String en Java son las siguientes:

1 Declarar un arreglo de caracteres:


char nombre_vector[]= {char1, char2,.,charn};
2 Declarar e instanciar un objeto String, as:
String nombre_variable=new String(nombre_vector);

Ejemplo:
Determine que imprime el siguiente programa:
class Cadena_Char{
public static void main(String[] args){
char[] letras={'N','a','c','i','o','n','a','l'};
String frase;
frase =new String(letras);
System.out.println ("La frase es="+frase);
}
}

4 Introduccin a String
Otra manera de crear un objeto String es mediante el uso de un constructor, explicito as:
1. Declare la variable de tipo String as:

String nombre_variable;

2. Luego proceda a crear un objeto o instancia de la clase String usando el constructor:

nombre_variable =new String( Cadena de Caracteres);

Con la declaracin anterior, se crea un objeto de la clase String, la cadena as creada se


coloca en un lugar especial reservado para la mismas y, si posteriormente se crea otra
cadena con el mismo literal, se aade un nuevo objeto a dicho espacio.

Ejemplo:
El siguiente programa muestra en Java, dos de las maneras para crear objetos de la clase
String, y en el grfico se muestra la gestin de memoria.
class ConstructoresString{
public static void main(String[] args){

String cadena1, cadena2;


String cadena1a,cadena2a;

/********* Creacin de cadena sin constructor *********/


cadena1="Madrid";
cadena2="Madrid";
//******* Creacion de cadenas con constructor
cadena1a=new String("Madrid");
cadena2a=new String("Madrid");

System.out.println(cadena1);
System.out.println(cadena2);
System.out.println(cadena1a);
System.out.println(cadena2a);
}
}
El siguiente ejemplo parece extrao, y sin sentido en lenguajes tradicionales como
Pascal, pero en Java, es importante que nos detengamos analizarlo:
Aunque todas las cadenas contienen el mismo texto en memoria su almacenamiento
tiene diferencias:
Cuando se ejecutan las instrucciones: cadena1="Madrid"; cadena2="Madrid"; no se
crean dos objetos diferentes.

Cuando se ejecutan las instrucciones: cadena1a=new String("Madrid"); cadena2a=new


String("Madrid"); se asignan dos objetos diferentes.

5
5.2 Comparando cadenas de caracteres
La comparacin de cadenas es la operacin que permite saber si dos objetos String contienen o
almacenan el mismo texto, Java realiza esta operacin comparando sucesivamente los cdigos
unicote de los caracteres correspondientes en ambas cadenas y si encuentra un carcter diferente
o una de las cadenas termina detiene la comparacin. Para que dos cadenas sean iguales, han de
tener el mismo nmero de caracteres y cada carcter de una debe ser igual al carcter de la otra.

5.2.1 El operador ==, en la comparacin de cadenas


En casi todos los lenguajes de programacin el operador de relacin == (igual que) se
utiliza para comparar el contenido de dos variables String, pero en Java, esto no es as: la
razn es que las variables String guardan la direccin de memoria donde se encuentra la
cadena, entonces lo que se compara es el valor de la direccin de memoria donde estn
los objetos que referencian, por tanto este operador no se puede utilizar para comparar
los contenidos. El siguiente ejemplo lo demuestra.

class CadenaSinconstructor{
public static void main(String[] args){
String cadena1a,cadena2a;

cadena1a=new String("Madrid");
cadena2a=new String("Madrid");
if (cadena1a==cadena2a)
System.out.println(" Si son iguales ");
else
System.out.println(" No son iguales ");
}
}
Si ejecuta el programa anterior, Java dir que las cadenas son diferentes, pues existen
dos objetos diferentes.

5.3 El mtodo equals


Se utiliza en Java para comparar el contenido de dos cadenas de caracteres. El mtodo
devuelve true cuando los contenidos son iguales y false cuando los contenidos son
diferentes.
Sintaxis
Si z1, z2 son dos variables de tipo String, la expresin
z1.equals (z2)

6 Introduccin a String
Compara el contenido de las dos cadenas de caracteres.

class ComparaCadenas{
public static void main(String[] args){

String cadena1, cadena2;


String cadena1a,cadena2a;

cadena1="Madrid";
cadena2="Madrid";

if (cadena1.equals(cadena2)==true)
System.out.println(" Si son iguales ");
else
System.out.println(" No son iguales ");

cadena1a=new String("Madrid");
cadena2a=new String("Madrid");
if (cadena1a.equals(cadena2a))
System.out.println(" Si son iguales ");
else
System.out.println(" No son iguales ");

}
}

5.4 El mtodo length()


Se utiliza en Java para conocer la longitud de una cadena, esto es, cuantos caracteres
conforman la cadena de caracteres.

Sintaxis:
int nombre_objeto.length ();

Donde el nombre del objeto es una variable String.

Ejemplo:
El siguiente cdigo Java, almacena el valor 10 en la variable a.
int a;
String valor=Hola Mundo;

a=valor.length ( );

7
5.5 El mtodo charAt ( )
Se utiliza para obtener el carcter que se encuentra en una posicin n de una cadena:

Sintaxis:
char nombre_objeto.charAt (int indice);

Donde el nombre del objeto es una variable String.

Tenga presente que el primer carcter de una cadena se encuentra en la posicin cero, y
el ltimo se encuentra en la posicin length() -1

Ejemplo:
Escriba un programa en Java que lea una cadena de caracteres y obtenga la cadena al
revs.
class CadenaAlreves{
public static void main(String[] args){
String cadena, cadena2;
int i;
System.out.println("Escriba una frase ");
cadena=ConsoleInput.getLn();
cadena2="";
for (i=(cadena.length()-1);i>=0;--i)
cadena2+=cadena.charAt(i);
System.out.println("La cadena leida es "+ cadena);
System.out.println("La cadena leida al reves es "+ cadena2);
}
}

Ejercicio:
Escriba un programa Java, que determine si una palabra que se ingresa por el teclado es
o no palndromo.
Ejercicio:
Escriba un programa en Java que determine cuantas letras de una palabra que se ingresa
estn en minsculas y cuantas en maysculas.
Ejercicio:
Escriba un programa que dado una frase que se ingresa por el teclado, el computador
diga cuantas palabras, la conforman, cuantos signos de puntuacin hay, cuantos espacios
en blanco hay.

5.6 El mtodo compareTo


Es un mtodo que se utiliza para comparar dos Strings, y devuelve 0 cuando las cadenas
son iguales, un nmero negativo si el objeto String que invoca a compareTo es menor
que el objeto String que se le pasa como argumento, y un numero positivo cuando es el
argumento el mayor.

8 Introduccin a String
Ejemplo:
Escriba un programa en Java que determine, cual de dos cadenas que se ingresan por el
teclado si son iguales, si no lo son, cual es la ms larga y cual es la menor.

Analice los resultados que arroja el programa siguiente con las palabras: ana, ana, luego
con Ana, ana, y por ltimo con Ana, Anastasia.

class CompareCadena{
public static void main(String[] args){
String frase1, frase2;

System.out.print("\t Ingresar una frase ");


frase1=ConsoleInput.getLn();
System.out.print("\t Ingresar otra frase ");
frase2=ConsoleInput.getLn();
if (frase1.compareTo(frase2)<0)
System.out.println("\t" + frase1+ "\t es mas corta que " + frase2);
else
if (frase1.compareTo(frase2)>0)
System.out.println("\t"+ frase2+ "\t es mas corta que " + frase1);
else
System.out.println("\t"+ frase2 + "\t es igual a " + frase1);
}
}

Ejercicio:
Escriba un programa que permita ingresar n nombres de personas a un vector y luego el
computador ordena alfabticamente los nombres de las personas. Ayuda: Utilice el
algoritmo de la burbuja, explicado en clase para ordenar nmeros enteros en un vector,
pero ahora utilice los conceptos de cadena explicado en los prrafos anteriores.

5.7 El mtodo toCharArray:


Este mtodo convierte una cadena de caracteres o String a un vector de caracteres.
Sintaxis:
variable=cadena.toCharArray();
donde:
variable es un vector de char
cadena es la variable String que se quiere convertir a vector de caracteres.

Ejemplo:
Escriba un programa en Java que lea una palabra del teclado y el computador obtenga
una palabra que tenga * asteriscos donde la palabra que se ingreso tiene vocales y
guiones donde la palabra orginal tiene consonantes.
Raton convierte a -*-*-

9
import java.io.*;

class DecadenaCaracter{

public static void main(String[] args){


String frase, frasenueva;
char[] letras;
int i;

System.out.println(Ingresa una frase );


frase=ConsoleInput.getLn();

letras=frase.toCharArray();
for (i=0;i<frase.length();++i){

switch ((int)letras[i]){
case 97:
case 101:
case 105:
case 111:
case 117:
case 65:case 69:
case 73:case 85: letras[i]=*;
break;
default:
if (((int)letras[i]>97) && ((int)letras[i]<122) || ((int)letras[i]>65) && ((int)letras[i]<90))
letras[i]=-;

}//Fin del Switch


}//Fin del For
System.out.println(La palabra fue = + frase);
frasenueva=new String(letras);
System.out.println(La palabra fue = + frasenueva);

}
}

5.8 El mtodo substring:


Permite extraer una cadena de una cadena y puede ser invocado con el paso de uno o de
dos parmetros a eleccin del programador. Si se espcifica un parmetro el mtodo
devuelve una nueva cadena que comienza donde indica el inicio y se extiende hasta el
final de la misma; si se especifican dos, la nueva cadena estar formada por los
caracteres existentes en la cadena original entre la posicin inicio y la final -1, ambas
inclusive
Sintaxis:
variable= cadena.substring(int pos_i, int pos_f);
Donde:
variable es un objeto String
cadena es un objeto String del cual se va a extraer los caracteres entre la posicin i y la
posicin f-1.

10 Introduccin a String
Ejemplo:
El siguiente ejemplo muestra como obtener una cadena al revs de una cadena dada,
utilizando el mtodo substring.

class SubCadena{
public static void main(String[] args){
String frase, nueva="";
int i;

System.out.println("Ingresar una palabra ");


frase=ConsoleInput.getLn();
for (i=frase.length();i>0;i--){
nueva=nueva+frase.substring(i-1,i);
}
System.out.println("La frase es ="+frase);
System.out.println("La frase al revs ="+ nueva);
}
}

5.9 El mtodo replace:


Devuelve una nueva cadena resultante de reemplazar todas las apariciones de un carcter
por uno nuevo.
Sintaxis:
variable = cadena.replace(char char_viejo, char char_nuevo);
Donde:
variable es un objeto String que tiene la nueva cadena.
cadena es un objeto String en el cual se va a remplazar el carcter viejo por el nuevo.

Ejemplo:
Escribir un programa en Java que dada una cadena de caracteres por el teclado el
computador permita cambiar un carcter determinado de la cadena, por otro.
class Reemplace{
public static void main(String[] args){
String frase,resultado;
char caracternuevo, caracteviejo;

System.out.println("Ingresar una frase ");


frase=ConsoleInput.getLn();
System.out.println("Ingresar caracter a cambiar ");
caracteviejo=ConsoleInput.getChar();
System.out.println("Ingresar caracter nuevo ");
caracternuevo=ConsoleInput.getChar();
resultado=frase.replace(caracteviejo,caracternuevo);
/* Si replace no encuentra el caracter en la cadena, retorna
* la misma instancia del String
*/
if (resultado==frase)
System.out.println("El caracter no existe");
else
System.out.println("El caracter si existe y la nueva cadena es " + resultado);
}
}

11
5.10 El mtodo trim:
Este mtodo se utiliza para obtener una cadena que no tiene espacios en blanco al
principio o al final de la cadena.

Sintaxis:
variable= cadena.trim( );
Donde:
variable es un objeto String que recibe la cadena que le enva el mtodo trim
cadena es un objeto String del cual se va a extraer los espacios blancos al principio y al
final.
Ejemplo:
El siguiente programa ilustra como utilizar el mtodo trim.
class QuitaBlancos{
public static void main(String[] args){
String frase;

frase=" Hola Mundo Loco ";


System.out.println("La frase original es" + frase + "con espacios");
System.out.println("La frase original es " + frase.trim()+ "sin espacios");
}
}

5.11 El mtodo indexOf:


Se utiliza para buscar dentro de una cadena, la posicin donde se encuentra el inicio de
una subcadena o donde se encuentra un carcter especifico. Si el mtodo no lo encuentra
devuelve -1.
Sintaxis:
variable= cadena.indexOf(int caracter );
variable= cadena.indexOf(String cadena);

Donde:
variable es una variable entera
cadena es un objeto String en la cual se va a buscar el carcter o la cadena.

class BuscaCadena{
public static void main(String[] args){
String frase, fraseBuscada, mensaje;
int pos;

System.out.println("Ingresar frase ");


frase=ConsoleInput.getLn();
System.out.println("Ingresar la palabra a buscar ");
fraseBuscada=ConsoleInput.getLn();
/******
* Buscamos fraseBuscada dentro de frase
*/
pos=frase.indexOf(fraseBuscada);

12 Introduccin a String
if (pos==-1)
mensaje=" No esta en ";
else
mensaje=" esta en la posicin " + pos + " de ";

System.out.println(fraseBuscada + mensaje + frase);


}
}

5.12 Los mtodos toUpperCase y toLowerCase:


El primero de estos mtodos devuelve una nueva cadena convirtiendo a maysculas
todos las letras en minsculas en una cadena de caracteres, el segundo, devuelve una
cadena nueva con a minsculas todos los caracteres en maysculas.

Sintaxis:
variable= cadena.toUpperCase( );
variable= cadena.toLowerCase( );

Donde:
variable es una variable String que almacena la nueva cadena
cadena es un objeto String en la cual se van a convertir a maysculas o minsculas.

6 Bibliografa
Java 2, Mc Graw Hill, Luis Joyanes Aguilar, Matilde Fernandez Azuela, Impreso
Espaa.
Introduccin a la programacin orientada a Objetos con Java. Mc Graw Hill, C. Thomas
Wu, Impreso Espaa.

13

Вам также может понравиться