18
Longitud de cadena y funciones en Java Escrito por sue smith | Traducido por beatriz sánchez Algunas funciones de cadena en Java procesan el texto introducido por el usuario. Thinkstock Images/Comstock/Getty Images Las cadenas en Java permiten a los desarrolladores modelas secuencias de caracteres de texto. La clase de cadena en Java proporciona métodos para procesar cadenas, incluyendo funciones para devolver información sobre una cadena, como su longitud. Las cadenas son uno de los tipos de datos más usados en los programas Java, así que aprender los conceptos básicos de uso de cadenas es una actividad útil para la gente que aprende el desarrollo en Java. La mayoría de las funciones de cadena son sencillas. Otras personas están leyendo

Longitud de cadena y funciones en java

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Longitud de cadena y funciones en java

Longitud de cadena y funciones en Java Escrito por sue smith | Traducido por beatriz sánchez

Algunas funciones de cadena en Java procesan el texto introducido por el usuario.

Thinkstock Images/Comstock/Getty Images

Las cadenas en Java permiten a los desarrolladores modelas secuencias de caracteres de texto. La clase de cadena en Java proporciona métodos para procesar cadenas, incluyendo funciones para devolver información sobre una cadena, como su longitud. Las cadenas son uno de los tipos de datos más usados en los programas Java, así que aprender los conceptos básicos de uso de cadenas es una actividad útil para la gente que aprende el desarrollo en Java. La mayoría de las funciones de cadena son sencillas.

Otras personas están leyendo

Cómo calcular las vocales, los espacios y las consonantes de una cadena dada en Java

Películas que debes ver antes de morir

Objetos de cadena

Page 2: Longitud de cadena y funciones en java

En Java, las cadenas son objetos. Esto quiere decir que puedes llamar a métodos en variables y valores de cadena. La especificación del lenguaje Java para la clase de cadena describe los métodos disponibles. Para crear un objeto de cadena e instanciarlo, dándole un valor, usa la siguiente sintaxis de ejemplo: String someName = "James"; Para llamar a un método en una variable de cadena, usa el siguiente código, llamando al método "trim": String trimmedString = someName.trim(); Este código de ejemplo llama al método "trim", que devuelve una copia de la cadena habiendo eliminado los espacios al principio y al final, y almacenando el resultado en una nueva variable.

Caracteres

Las cadenas en Java son secuencias de caracteres de texto. La clase proporciona un rango de funciones para acceder y manipular estos caracteres. Por ejemplo, el siguiente código de ejemplo demuestra cómo mostrar el carácter de la primera posición en una variable de cadena: System.out.println(someName.charAt(0)); El primer carácter de una cadena está en la posición cero, ya que la cadena implementa su secuencia de caracteres como un vector. Estos caracteres dentro de la cadena se pueden representar con un programa Java usando el tipo de datos "char", de esta forma: char firstChar = someName.charAt(0); El tipo de datos "char" es un tipo primitivo, como "int" y "double".

Longitud

Los programas Java acceden a la longitud de un objeto de cadena llamando a su método de longitud. El método devuelve un valor entero que representa el número de caracteres dentro de la cadena. El siguiente código de ejemplo muestra cómo saber la longitud de una cadena y almacenar el resultado en una variable: int stringLength = someName.length(); Los programas también pueden usar directamente el método de longitud, como en la siguiente estructura de ejemplo, iterando en la cadena para escribir cada carácter por turnos: for(int i=0; i<someName.length(); i++){ System.out.println(someName.charAt(i)); } Los programas usan el método de longitud de la clase de cadena por muchas razones, por ejemplo, para determinar si una variable de cadena es demasiado larga para almacenarla o mostrarla en un contexto con recursos limitados.

Métodos

La clase de cadena proporciona varias funciones adicionales, que programan el acceso a través de llamadas a métodos. El método "indexOf" devuelve un entero que indica la primera aparición de una secuencia de caracteres dentro de una cadena de la siguiente forma: String letters = "abcde"; int letterIndex = letters.indexOf("b");//will contain 1 El método "equals" de una clase de cadena devuelve un valor booleano de cierto o falso que indica si un valor de cadena es igual a otro. Los métodos que devuelven partes manipuladas de cadenas incluyen el método "split", que devuelve un vector de cadena con partes definidas de una cadena original almacenada en cada posición. El método "substring" devuelve un trozo de una cadena como indican las posiciones de inicio y fin requeridas,

Page 3: Longitud de cadena y funciones en java

como en este ejemplo: String someWords = "A series of words"; System.out.println(someWords.substring(0,8));//"A series

Page 4: Longitud de cadena y funciones en java

Validación de JTextField: TextField numérico, binario o solo letras

Por Fabrizzio · 23 junio, 2012 (39892 vistas)

Compartir:

¿Alguna vez han querido validar alguna entrada de datos de algún campo? Por ejemplo, ¿validar que lo que el usuario escribe sea solo números o solo letras? Pues conociendo las propiedades adecuadas de los elementos podemos lograr esto muy fácilmente.

Trabajaremos en Java con NetBeans como IDE.

Por ejemplo si queremos que en un campo (JTextField) sólo se ingresen números, tendríamos que editar el evento KeyTyped del JTextfield. Para esto, damos click derecho sobre el componente y seleccionamos Events->Key->KeyTyped tal como se muestra en la imagen:

Dentro de la función de dicho evento, colocamos lo siguiente:

char car = evt.getKeyChar();

if((car<'0' || car>'9')) evt.consume();

Se verá asi:

Cada vez que el usuario presione una tecla, se generará este evento y lo que hacemos es sacar el caracter que presiono el usuario que se almacena en la variable evt. Luego, en un simple if decimos: si el caracter no esta entre 0 y 9 lo desechamos (consumimos). Y de esta manera logramos que el JTextField acepte sólo números.

También podemos agregar otro tipo de validación en este mismo evento como limitar la cantidad de caracteres que se pueden escribir, esto se logra agregando un if que verifica la cantidad de

Page 5: Longitud de cadena y funciones en java

caracteres en el JTextField. Por ejemplo, para los números telefónicos de El Salvador que sólo tienen 8 caracteres los podríamos validar de la siguiente forma:

char car = evt.getKeyChar();

if(txtNumerico.getText().length()>=8) evt.consume();

if((car<'0' || car>'9')) evt.consume();

De igual manera, podríamos validar que solo se puedan digitar números binarios agregando el siguiente código a la función del evento:

char car = evt.getKeyChar();

if(car!='0' && car!='1') evt.consume();

De manera similar, si solo quisieramos letras tendríamos que poner:

char car = evt.getKeyChar();

if((car<'a' || car>'z') && (car<'A' || car>'Z')) evt.consume();

Pueden descargar el siguiente proyecto ejemplo en NetBeans: ValidacionTextField

Actualización 01

por hug0

- Como permitir la barra espaciadora dentro de la caja de texto:

char car = evt.getKeyChar();

if((car<'a' || car>'z') && (car<'A' || car>'Z')

Page 6: Longitud de cadena y funciones en java

&& (car!=(char)KeyEvent.VK_SPACE))

{

evt.consume();

}

Con KeyEvent.VK_SPACE se captura la tecla espaciadora

- Como permitir vocales con tilde en la caja de texto:

char car = evt.getKeyChar();

if((car<'a' || car>'z') && (car<'A' || car>'Z')

&& car !='á' //Minúsculas

&& car !='é'

&& car !='í'

&& car !='ó'

&& car !='ú'

&& car !='Á' //Mayúsculas

&& car !='É'

&& car !='Í'

&& car !='Ó'

&& car !='Ú'

&& (car!=(char)KeyEvent.VK_SPACE))

{

evt.consume();

}

Page 7: Longitud de cadena y funciones en java

La Clase String

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 :

o String str =”abc”; o char str[] = {‘a’,’b’,’c’};  //arreglo de caracteres o 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

III.- MÉTODOS MAS IMPORTANTES

Page 8: Longitud de cadena y funciones en java

1. String (String valor) .- Se usa cuando se desea crear una cadena de caracteres :

o String cadena = “Hola” o 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 :

?

12

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

3.

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 :

o < 0 : si cadena < otra cadenao = 0 : si cadena = otra cadena o > 0 : si cadena > otra cadena

Ejemplo :

o JUAN > juan o Juan > Carlos o JUAN > JUAno abcde > abcdefg

4. 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

5. cadena.length() .- Devuelve la longitud o número de caracteres de la cadena :

Page 9: Longitud de cadena y funciones en java

String cad="Hola Mundo";int cant = cad.length();// El valor de cant será 10

6. cadena.toLowerCase() .- Convierte a minúsculas las letras mayúsculas de la cadena

7. cadena.toUpperCase().- Convierte en mayúsculas las letras minúsculas de la cadena.

?

12

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

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

?

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

IV.- MÉTODOS

CONSTRUCTORESConstructor DescripciónString( ) 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ÉTODOSTipo de retorno

Método Descripción

char charAt(int index)Retorna el carácter correspondiente al índice dado como parámetro.

Page 10: Longitud de cadena y funciones en java

intcompareTo(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.

intcompareToIgnoreCase(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.

intlastIndexOf (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.

StringreplaceAll (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.

boolea startsWith (String cad) Retorna true si la cadena que llama al método

Page 11: Longitud de cadena y funciones en java

nempieza 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.

StringsubString(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.

o

Creamos un nuevo proyecto al cual colocaremos en un paquete; en este nuevo paquete vamos a agregar 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

Page 12: Longitud de cadena y funciones en java

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)

o

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.

?

12345678910

private void btnLongitudActionPerformed(java.awt.event.ActionEvent evt) {// lee el mensajeString cadena=txtMensaje.getText();

// obtiene la longitudint longi = cadena.length();

// imprime longitudtxtSalida.setText("El texto ingresado tiene: "+longi+" caracteres.");}

Page 13: Longitud de cadena y funciones en java

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

?

12345678910111213141516171819202122232

private void btnSeparaPalabrasActionPerformed(java.awt.event.ActionEvent evt) {// lee el mensajeString cadena=txtMensaje.getText();// obtiene la longitudint longi = cadena.length();// limpia areatxtSalida.setText("");// inicializa contador de palabrasint contpala=0;// separa palabras por el espacio en blancodo {// no considera espacios al inicio ni al finalcadena=cadena.trim();// ubica posicion del primer caracter blancoint pos=cadena.indexOf(' ');// obtiene palabra encontradaString palabra="";if (pos>0)palabra=cadena.substring(0,pos+1);elsepalabra=cadena;// imprime palabra encontradatxtSalida.append(palabra+"\n");// ignora palabra encontradacadena=cadena.substring(palabra.length());// actualiza contador de palabrascontpala++;} while(cadena.length()>0);// imprime contador de palabrastxtSalida.append("\n"+contpala+" palabras encontradas.");}

Page 14: Longitud de cadena y funciones en java

425262728293031

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

?

123456789

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

Y con el botón de minúsculas :

?

1234

private void btnMinusculasActionPerformed(java.awt.event.ActionEvent evt) {// lee el mensaje

Page 15: Longitud de cadena y funciones en java

5678

String cadena=txtMensaje.getText();// lo convierte a minúsculascadena = cadena.toLowerCase();// imprime nueva cadena en minusculastxtSalida.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 )

o Por ultimo ejecutamos con F6