Sei sulla pagina 1di 21

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO

FACULTAD DE CIENCIAS
ESCUELA DE FSICA Y MATEMTICAS
INGENIERA EN ESTADSTICA INFORMTICA
LENGUAJE DE PROGRAMACION I
TEMA:
TIPO DE DATO Y FUNCIONES DEL DATO STRING
SEMESTRE: SEGUNDO PARALELO: UNICO
AUTOR:
JONATNAN DAVID CALVOPIA MERCHN
DOCENTE:
ING. MILTON PAUL LOPEZ RAMOS
RIOBAMBA, 17 DE NOVIEMBRE DEL 2017
Mtodos de String

La clase String es otra de las clases del siempre disponible paquete java.lang.
charAt y equalsIgnoreCase
String, Estos mtodos de la clase String no tienen el modificador
de acceso static, y no se puede acceder a ellos sino mediante el nombre de la
clase. Son mtodos de instancia y se debe acceder a ellos con una instancia de
string en particular, dicho de otra
manera, se debe acceder a ellos a travs de una llamada a un objeto de tipo
string.
Ordenacin lexicogrfica de los objetos tipo
String
Sabemos que los nmeros se pueden comparar para determinar cual es mayor. Las cadenas de caracteres
tambin se pueden comparar. Cuando la computadora lo hace, utiliza el orden lexicogrfico. Para la
mayora,
el orden lexicogrfico es lo mismo que el orden en un diccionario. La cadena hiena es mayor que
la cadena halcon porque hiena aparece despus de halcn en el diccionario.
El mtodo compareTo de la clase String compara dos cadenas para determinar cual es mayor.
si el objeto tipo String que llama al mtodo es mayor que la cadena de caracteres utilizada como
argumento; un numero
negativo, si es menor; y cero, si ambos son iguales. El siguiente fragmento de cdigo ilustra esta
explicacin. En ella, se comparan los ttulos de videos de YouTube1 y se imprimen los resultados de las
comparaciones. Si se corre este fragmento de cdigo, no hay que sorprenderse si los dos primeros
resultados de los valores de salida que se obtengan puedan estar entre 1 y 14. De acuerdo con la
especificacin
de Sun, los primeros dos valores de salida pueden ser cualquier numero positivo y cualquier negativo,
respectivamente.*
Ejemplos
String videoyouTube = "Colbert Invades Ecuador";
System.out.println(
videoyouTube.compareTo("Bad Day at Work") + " " +
videoyouTube.compareTo("Colbert Whitehouse Dinner") + " " +
videoyouTube.compareTo("Colbert Invades Ecuador"));
Salida:
1 -14 0
Clase String
En la figura podemos ver la clase String y en el panel de contenido la definicin de una de las
funciones miembro substring que hemos seleccionado en el panel de estructura. Por encima de la
definicin aparece la documentacin relativa a dicha funcin.
Para volver al cdigo fuente de nuestra clase pulsamos en el botn "home" encima del panel de
navegacin.
Dentro de un objeto de la clases String o StringBuffer, Java crea un array de caracteres de una forma similar a como lo
hace el lenguaje C++. A este array se accede a travs de las funciones miembro de la clase.
Los strings u objetos de la clase String se pueden crear explcitamente o implcitamente. Para crear un string
implcitamente basta poner una cadena de caracteres entre comillas dobles. Por ejemplo, cuando se escribe

System.out.println("El primer programa");

Java crea un objeto de la clase String automticamente.


Para crear un string explcitamente escribimos

String str=new String("El primer programa");

Tambin se puede escribir, alternativamente

String str="El primer programa";

Para crear un string nulo se puede hacer de estas dos formas

String str="";
String str=new String();

Un string nulo es aqul que no contiene caracteres, pero es un objeto de la clase String. Sin embargo,
String str;
est declarando un objeto str de la clase String, pero an no se ha creado ningn objeto de esta clase.
Cmo se obtiene informacin acerca del
string
Una vez creado un objeto de la clase String podemos obtener informacin relevante acerca del objeto a travs de las funciones miembro.
Para obtener la longitud, nmero de caracteres que guarda un string se llama a la funcin miembro length.

String str="El primer programa";


int longitud= str.length();

Podemos conocer si un string comienza con un determinado prefijo, llamando al mtodo startsWith, que devuelve true o false, segn que el string comience
o no por dicho prefijo

String str="El primer programa";


boolean resultado= str.startsWith("El");

En este ejemplo la variable resultado tomar el valor true.


De modo similar, podemos saber si un string finaliza con un conjunto dado de caracteres, mediante la funcin miembro endsWith.

String str="El primer programa";


boolean resultado= str.endsWith("programa");
Si se quiere obtener la posicin de la primera ocurrencia de la letra p, se usa la funcin indexOf.
String str="El primer programa";
int pos= str. IndexOf('p');
Para obtener las sucesivas posiciones de la letra p, se llama a otra versin de la misma funcin
pos= str. IndexOf('p', pos+1);
El segundo argumento le dice a la funcin indexOf que empiece a buscar la primera ocurrencia
de la letra p a partir de la posicin pos+1.
Otra versin de indexOf busca la primera ocurrencia de un substring dentro del string.
String str="El primer programa";
int pos= str. IndexOf("pro");
Vemos que una clase puede definir varias funciones miembro con el mismo nombre pero que
tienen distinto nmero de parmetros o de distinto tipo.
Comparacin de strings
La comparacin de strings nos da la oportunidad de distinguir entre el operador lgico == y la
funcin miembro equals de la clase String. En el siguiente cdigo

Esta porcin de cdigo devolver que str1 y str2 son distintos objetos pero con el mismo
contenido. str1 y str2 ocupan posiciones distintas en memoria pero guardan los mismos datos.
Cambiemos la segunda sentencia y escribamos

String str1="El lenguaje Java";


String str2=str1;
System.out.prinln("Son el mismo objeto "+(str1==str2);

Los objetos str1 y str2 guardan la misma referencia al objeto de la clase String creado. La expresin (str1==str2)
devolver true.
As pues, el mtodo equals compara un string con un objeto cualquiera que puede ser otro string, y devuelve true cuando dos
strings son iguales o false si son distintos.

String str="El lenguaje Java";


boolean resultado= str.equals("El lenguaje Java");

La variable resultado tomar el valor true.


La funcin miembro comapareTo devuelve un entero menor que cero si el objeto string es menor (en orden alfabtico) que el
string dado, cero si son iguales, y mayor que cero si el objeto string es mayor que el string dado.

String str="Toms";
int resultado= str.compareTo("Alberto");

La variable entera resultado tomar un valor mayor que cero, ya que Toms est despus de Alberto en orden alfabtico.

String str="Alberto";
int resultado= str.compareTo("Toms");

La variable entera resultado tomar un valor menor que cero, ya que Alberto est antes que Toms en orden alfabtico.
Extraer un substring de un string
En muchas ocasiones es necesario extraer una porcin o substring de un string dado. Para este propsito hay una funcin miembro
de la clase String denominada substring.
Para extraer un substring desde una posicin determinada hasta el final del string escribimos

String str="El lenguaje Java";


String subStr= str.substring(12);

Se obtendr el substring "Java".


Una segunda versin de la funcin miembro substring, nos permite extraer un substring especificando la posicin de comienzo y la
el final.

String str="El lenguaje Java";


String subStr= str.substring(3, 11);

Se obtendr el substring "lenguaje". Recurdese, que las posiciones se empiezan a contar desde cero.
Convertir un nmero a string

Para convertir un nmero en string se emplea la funcin miembro esttica valueOf (ms adelante explicaremos este tipo de
funciones).

int valor=10;
String str= String.valueOf(valor);

La clase String proporciona versiones de valueOf para convertir los datos primitivos: int, long, float, double.
Esta funcin se emplea mucho cuando programamos applets, por ejemplo, cuando queremos mostrar el resultado de un clculo en el
rea de trabajo de la ventana o en un control de edicin.
Convertir un string en nmero
Cuando introducimos caracteres en un control de edicin a veces es inevitable que aparezcan espacios ya sea al comienzo o al final.
Para eliminar estos espacios tenemos la funcin miembro trim

String str=" 12 ";


String str1= str.trim();

Para convertir un string en nmero entero, primero quitamos los espacios en blanco al principio y al final y luego, llamamos a la
funcin miembro esttica parseInt de la clase Integer (clase envolvente que describe los nmeros enteros)

String str=" 12 ";


int numero= Integer.parseInt(str.trim());

Para convertir un string en nmero decimal (double) se requieren dos pasos: convertir el string en un objeto de la clase
envolvente Double, mediante la funcin miembro esttica valueOf, y a continuacin convertir el objeto de la clase Double en un tipo
primitivo double mediante la funcin doubleValue

String str="12.35 ";


double numero= Double.valueOf(str).doubleValue();

Se puede hacer el mismo procedimiento para convertir un string a nmero entero

String str="12";
int numero= Integer.valueOf(str).intValue();
La clase StringBuffer

En la seccin dedicada a los operadores hemos visto que es


posible concatenar cadenas de caracteres, es, decir, objetos de la
clase String, los objetos de la clase String son constantes lo cual significa que
por defecto, solamente se pueden crear y leer pero no se pueden modificar.
Imaginemos una funcin miembro a la cual se le pasa un array de cadenas de
caracteres. Los arrays se presentara en un ejemplo .
Cada vez que se aade una nueva palabra, se reserva una nueva porcin de memoria y se desecha la
vieja porcin de memoria que es ms pequea (una palabra menos) para que sea liberada por
el recolector de basura (grabage collector). Si el bucle se realiza 1000 veces, habr 1000 porciones de
memoria que el recolector de basura ha de identificar y liberar.
Para evitar este trabajo extra al recolector de basura, se puede emplear la clase StringBuffer que nos
permite crear objetos dinmicos, que pueden modificarse.
Conclusiones

Es necesario recordar que la clase String es otra de las clases del siempre
disponible paquete java.lang
Es necesario introducir los valores adecuados para String ,ya que si no ocurre
que no correr el programa o la ejecucin de la misma, ya que requiere de un
adecuado orden.
Bibliografa:

Aguilar, L. J. (2008). Fundamentos de programacion. Mexico: McGrawHill.


Aguilar, L. J. (2012). Fundamentos de programacion. Mexico: McGrawHill.

Potrebbero piacerti anche