Manejo de Cadenas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 16

PROGRAMACION DE

COMPUTADORES
EJERCICIOS

Profesor: Alexis Rojas Cordero


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Contenido

OBJETIVO GENERAL. ........................................................................................................ 2


OBJETIVOS ESPECIFICOS................................................................................................. 2
CADENAS ............................................................................................................................ 2
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

OBJETIVO GENERAL.
Trabajar con funciones avanzadas del Java

OBJETIVOS ESPECIFICOS
 Manejo de cadenas

CADENAS

length ()  Devuelve el número de caracteres en esta cadena.


charAt (índice)  Devuelve el carácter en el índice especificado de esta cadena.
concat (s1)  Devuelve una nueva cadena que concatena esta cadena con la
cadena s1.
toUpperCase ()  Devuelve una nueva cadena con todas las letras en
mayúsculas.
toLowerCase ()  Devuelve una nueva cadena con todas las letras en
minúsculas
trim ()  Devuelve una nueva cadena con caracteres de espacio en blanco
recortados en ambos lados.

El método s.charAt (índice) se puede utilizar para recuperar un carácter


específico en una cadena s, donde el índice está entre 0 y s.length () - 1. Por
ejemplo, message.charAt (0) devuelve el carácter W, como se muestra en la
Figura 1. Tenga en cuenta que el índice para el primer carácter de la cadena es
0.
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Figura 1.
import java.util.Scanner;

public class CantidadVocales {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String cad = sc.nextLine(); //leemos la cadena
int cantidadVocales = 0;
//iteramos mientras el indice sea menor al tamanio total de la cadena
for (int i = 0; i < cad.length(); i++) {
char car = cad.charAt(i); //obtenemos el caracter en la posicion i
//si el caracter es igual a "a", "e", "i", "o", ó "u" entonces es vocal
if (car == 'a' || car == 'e' || car == 'i' || car == 'o' || car == 'u') {
cantidadVocales++; //contamos cantidad vocales +1
}
}
//mostramos por pantalla cantidad de vocales
System.out.println("La candidad de vocales es: " + cantidadVocales);
}

Concatenación de cadenas

Puede utilizar el método concat para concatenar dos cadenas. La declaración que se
muestra a continuación, por ejemplo, concatena las cadenas s1 y s2 en s3:

Cadena s3 = s1.concat (s2);

Debido a que la concatenación de cadenas se usa mucho en la programación, Java


proporciona una manera conveniente de lograrlo. Puede usar el operador más (+)
para concatenar dos cadenas, por lo que la declaración anterior es equivalente a:

Cadena s3 = s1 + s2;

El siguiente código combina el mensaje de cadenas "y" y "HTML" en una cadena:


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

String myString = message + "y" + "HTML";

Recuerde que el operador + también puede concatenar un número con una cadena.
En este caso, el número se convierte en una cadena y luego se concatena. Tenga en
cuenta que al menos uno de los operandos debe ser una cadena para que la
concatenación tenga lugar.

Lectura de cadenas por consola.

Se hace con next().


Ejemplo:

Scanner input = new Scanner(System.in);


System.out.print("Enter three words separated by spaces: ");
String s1 = input.next();
String s2 = input.next();
String s3 = input.next();
System.out.println("s1 is " + s1);
System.out.println("s2 is " + s2);
System.out.println("s3 is " + s3);

LECTURA DE CARACTERES POR CONSOLA

Para leer un carácter desde la consola, use el método nextLine() para leer una cadena
y luego invoque el método charAt (0) en la cadena

Scanner input = new Scanner(System.in);


System.out.print("Enter a character: ");
String s = input.nextLine();
char ch = s.charAt(0);
System.out.println("The character entered is " + ch);

Comparando cadenas

equals(s1)  Devuelve verdadero si esta cadena es igual a la cadena s1.

compareTo (s1)  Devuelve un número entero mayor que 0, igual a 0 o menor que
0 para indicar si esta cadena es mayor, igual o menor que s1.
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

compareToIgnoreCase(s1)  Igual que compareTo, excepto que la comparación no


distingue entre mayúsculas y minúsculas.

startsWith(prefijo)  Devuelve verdadero si esta cadena comienza con el prefijo


especificado.
endsWith(sufijo)  Devuelve verdadero si esta cadena termina con el sufijo
especificado.
contains(s1)  Devuelve verdadero si s1 es una subcadena contenida en esta
cadena.

package ejercicios;

import java.util.Scanner;

public class Cadenas {

public static void main(String[] args) {


Scanner input = new Scanner(System.in);

// Prompt the user to enter two cities


System.out.print("Entre la primera ciudad: ");
String city1 = input.nextLine();
System.out.print("Entre la segunda ciudad: ");
String city2 = input.nextLine();

if (city1.compareTo(city2) < 0)
System.out.println("las ciuddades en orden
alfabetico son: " + city1 + " y " + city2);
else
System.out.println("Las ciudades ordanadas
son " + city2 + " " + city1);
}
}
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

ARMADO, DESARMADO Y BUSQUEDA EN CADENAS

Cadena substring. Retorna un substring a partir de la posición indicada en el parámetro


pos1 hasta la posición pos2 sin incluir dicha posición.

Ejemplo1: String substring(int pos1,int pos2)

Puede obtener un solo carácter de una cadena usando el método charAt. También puede
obtener una subcadena de una cadena utilizando el método de subcadena en la clase
Cadena.

Por ejemplo2,

Sea:

String message = "Welcome to Java";

String mensaje1 = message.substring( 0, 11) + "HTML";


Entonces de la posición 0 a la 11 estan las palabras “Welcomne to ”, le
sumamos la cadena “HTML” y nos da lo siguiente:

La cadena mensaje1 muestra lo siguiente:

Welcome to HTML.
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

TABLA DE METODOS PARA OBTENER SUBSTRINGS

index (ch)  Devuelve el índice de la primera aparición de ch en la cadena. Devuelve -1 si


no coincide.

indexOf (ch, fromIndex)  Devuelve el índice de la primera aparición de ch después de


fromIndex en la cadena. Devuelve -1 si no coincide.

indexOf(s)  Devuelve el índice de la primera aparición de la cadena s en esta cadena.


Devuelve -1 si no coincide.

indexOf (s, fromIndex)  Devuelve el índice de la primera aparición de la cadena s en


esta cadena después de fromIndex. Devuelve -1 si no emparejado

lastIndexOf(ch)  Devuelve el índice de la última aparición de ch en la cadena. Devuelve


-1 si no coincide.

lastIndexOf (ch, fromIndex)  Devuelve el índice de la última aparición de ch antes de


fromIndex en esta cadena. Devuelve -1 si no emparejado

lastIndexOf(s)  Devuelve el índice de la última aparición de la cadena s. Devuelve -1 si


no coincide.

lastIndexOf (s, fromIndex)  Devuelve el índice de la última aparición de la cadena s


antes de fromIndex. Devuelve -1 si no coincide.

Ejemplo3:

Otros ejemplos:

package ejercicios;

public class subcadenas {

public static void main(String[] args) {

String cadena = "EL MAR ES AZUL Y EL CIELO


TAMBIEN";
int longitud = cadena.length();
String a = cadena.substring(7); // Extraer desde
la posicion 7 hasta el final
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

System.out.println("Ejemplo de SubString en Java


1 = " + a);

String b = cadena.substring(9); // Extraer desde


la posicion 9 hasta el final
System.out.println("Ejemplo de SubString en Java
2 = " + b);

String c = cadena.substring(0, 13); // Extraer


desde la posicion (0) tomar 13 caracteres
System.out.println("Ejemplo de SubString en Java
4 = " + c);
// Extraer desde la 5 tome 20
System.out.println("Ejemplo de SubString en Java
5 = " + cadena.substring(5, 20));

// armar mensajes y desarmarlos luego para


convertirlos a nuemros

String opcion = "1,";


String oficina = "2458";
String secuencia = "98765432,";
String Valor = "100000";
String mensaje = opcion + oficina + secuencia +
Valor;
System.out.println("EL MENSAJE ES = " + mensaje);

// En el servidor hace, al contrario. Recibe la cadena y


// extrae los datos y los convierte a eteros, para que
//pueda operar

int k = mensaje.indexOf(','); // extrae la


posicion de la coma

int opc = Integer.parseInt(opcion.substring(0,


k)); // desde la cero tome 1 valor
System.out.println("LA OPCION ES = " + opc);
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

int sucursal =
Integer.parseInt(mensaje.substring(2, 6)); //inice en la
pos 2 y corte en la 6
System.out.println("LA SUCURSAL ES = " +
sucursal);

int cuenta =
Integer.parseInt(mensaje.substring(6,14)); //inice en la
pos 2 y corte en la 6
System.out.println("LA CUENTA ES = " + cuenta);

int valor =
Integer.parseInt(mensaje.substring(15)); //inice en la pos
2 y corte en la 6
System.out.println("LA CUENTA ES = " + valor);
}
}

Salida:

Ejemplo de SubString en Java 1 = ES AZUL Y EL CIELO


TAMBIEN
Ejemplo de SubString en Java 2 = AZUL Y EL CIELO TAMBIEN
Ejemplo de SubString en Java 4 = EL MAR ES AZU
Ejemplo de SubString en Java 5 = R ES AZUL Y EL
EL MENSAJE ES = 1,245898765432,100000
LA OPCION ES = 1
LA SUCURSAL ES = 2458
LA CUENTA ES = 98765432
LA CUENTA ES = 100000
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

TRATAMIENTO DE DATOS CON ARCHIVOS

Lectura de un archivo de texto en java

Para abrir un archivo de texto y poder leerlo, se usa la clase FileReader.

Esta clase tiene métodos que permiten leer caracteres.

Sin embargo, es habitual querer leer las líneas completas, bien porque interesa la
línea completa o bien para poder analizarla luego y extraer campos de ella.

FileReader no contiene métodos que permitan leer líneas completas, esto se hace
con la clase BufferedReader, la cual construye un BufferedReader a partir del
FileReader de la siguiente forma:

File archivo = new File ("C:\\datos.txt"); // variable archivo declada tipo File
FileReader fr = new FileReader (archivo); // Primer constructor que activa el
archivo
BufferedReader br = new BufferedReader(fr); //Segundo constructor para leer
lineas
...
String linea = br.readLine(); // aquí ya se ejecura la lectura

La apertura del archivo y su posterior lectura pueden lanzar excepciones que


debemos capturar. Por ello, la apertura del archivo y la lectura debe meterse en un
bloque try-catch.

Además, el archivo hay que cerrarlo cuando terminemos con él, tanto si todo ha ido
bien como si ha habido algún error en la lectura después de haberlo abierto.

Por ello, se suele poner al try-catch un bloque finally y dentro de él, el close() del
archivo.
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Los datos se muestran en la figura 1. En la figura 2 se muestra el archivo creado en


el disco C.

El siguiente es un código completo con todo lo mencionado se observa en la Figura


3.

Figura 1. Datos grabados

Figura 2. Archivo llamado: DATOS.TXT


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Figura 3. Código fuente para leer líneas de un archivo en java


import java.io.*;

public class leerDatosArchivo {


public static void main(String[] arg) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;

try {

// Apertura del archivo y creación de BufferedReader para poder


// hacer una lectura cómoda (disponer del método readLine()).

archivo = new File("C:\\DATOS.TXT");


fr = new FileReader(archivo);
br = new BufferedReader(fr);

// Lectura del archivo


String linea;
while ((linea = br.readLine()) != null) //CONTROLA EL
// FIN DEL ARCHIVO (MINETRAS NO SEA VACIO
HAGA)
System.out.println(linea);
} catch (Exception e) {

System.out.println("**********************************");
System.out.println("* EL ARCHIVO DATOS NO EXISTE
*");
System.out.println("**********************************");
e.printStackTrace();
} finally {
// En el finally cerramos el archivo, para asegurarnos
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

// que se cierra tanto si todo va bien como si salta


// una excepcion.
try {
if (null != fr) {
fr.close();
}
} catch (Exception e2) {
System.out.println("error cerrando el archivo");
e2.printStackTrace();
}
}
}
}

Escritura de un archivo de texto en java

Para escribir archivos es necesario habilitar una variable tipo File para definir la ruta
donde va a quedar en el disco y como se va a llamar el archivo.

Después verificar si tiene permisos de escritura en ese archivo, si sale false, es porque
el archivo no existe.

Luego crea la estancia (constructor de grabación de datos) con BufferedWriter

Con bw.write(mensaje) se eEscribe en el archivo, donde mensaje es la variable que


lleva los contenidos.

Para que cree líneas nuevas dentro del archivo, se usa bw.newLine();

Ejemplo

import java.util.*;
import java.io.*;
import java.util.Scanner;

public class escribirFichero {

public static void main(String[] args) throws IOException {


Scanner teclado=new Scanner(System.in);

File archivo = new File("c:/DISCOC/fichero8.txt"); //ruta del


archivo

System.out.println("El archivo con permisos?: " +


archivo.setWritable(true)); // verificar si tiene permisos en el disco

BufferedWriter bw;

try {
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

if (archivo.exists()) {
bw = new BufferedWriter(new FileWriter(archivo,true));
//adicionar líneas al final con el parámetro "true"
System.out.println("El archivo existe y se abrió.");
} else {
bw = new BufferedWriter(new FileWriter(archivo));
System.out.println("Se creó el archivo se se habilitó
para escribir");
}

int terminar = -1;


String codigo = null;
String nombres = null;
String apellidos = null;
String plata = null;
String mensaje = null;

while (terminar != 0) {

System.out.println(" ");
System.out.println("Ingrese la opcion ");
codigo = teclado.next();
System.out.println("Ingrese el nombre ");
nombres = teclado.next();
System.out.println(" ");
System.out.println("Ingrese los apellidos ");
apellidos = teclado.next();
System.out.println("Ingrese el valor ");
plata = teclado.next();

mensaje = codigo +"," + nombres+"," + apellidos + "," +


plata;

bw.write(mensaje); //Escribe en el archivo


bw.newLine(); // salta de linea

System.out.println("Para terminar digite 0");


terminar = teclado.nextInt();
}
System.out.println(" F. I. N.");
bw.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("El arhivo no se pudo abrir ni crear");
}
}
}

Arcivo: fichero8.txt
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

También podría gustarte