Vous êtes sur la page 1sur 16

PERSISTENCIA DE

DATOS Y
TRANSACCIONES
EJERCICIOS

Profesor: Alexis Rojas Cordero


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

Contenido

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


OBJETIVOS ESPECIFICOS................................................................................................. 2
RANDOMICOS. ..................................................................... ¡Error! Marcador no definido.
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;
import java.util.Scanner;

public class subcadenas {

public static void main(String[] args) {


Scanner teclado = new Scanner(System.in);

//segmento de programa para hacer en el cliente


//String opcion = "2,";

System.out.println("digite la opcion ");


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

String opcion = teclado.nextLine();

String oficina = ",2458";


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

/****************************************************
*******************
* segmento de programa para hacer en el hacer en
el servidor *
*
**********************************************************
***********/

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


posicion de la coma

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


k)); // desde la cero tome 1 valor
System.out.println("LA OPCION ES = " + opc);

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);

long cuenta =
Long.parseLong(mensaje.substring(2,14)); //inice en la pos
2 y corte en la 14
System.out.println("LA CUENTA ES = " + cuenta);

int valor =
Integer.parseInt(mensaje.substring(15)); //inice en la pos
15 y toma el resto hasta el final
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

System.out.println("EL VALOR 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

package ejercicios;

import java.util.Scanner;

public class cademas {


public static void main(String[] ar) {
Scanner teclado = new Scanner(System.in);
String cad1;
String cad2;
System.out.print("Ingrese la primer cadena:");
cad1 = teclado.nextLine();
System.out.print("Ingrese la segunda cadena:");
cad2 = teclado.nextLine();
if (cad1.equals(cad2) == true) {
System.out.println(cad1 + " es exactamente
igual a " + cad2);
} else {
System.out.println(cad1 + " no es
exactamente igual a " + cad2);
}
if (cad1.equalsIgnoreCase(cad2) == true) {
System.out.println(cad1 + " es igual a " +
cad2 + " sin tener en cuenta mayúsculas/minúsculas");
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

} else {
System.out.println(cad1 + " no es igual a "
+ cad2 + " sin tener en cuenta mayúsculas/minúsculas");
}
if (cad1.compareTo(cad2) == 0) {
System.out.println(cad1 + " es exactamente
igual a " + cad2);
} else {
if (cad1.compareTo(cad2) > 0) {
System.out.println(cad1 + " es mayor
alfabéticamente que " + cad2);
} else {
System.out.println(cad2 + " es mayor
alfabéticamente que " + cad1);
}
}

char carac1 = cad1.charAt(0);


System.out.println("El primer caracter de " +
cad1 + " es " + carac1);
int largo = cad1.length();
System.out.println("El largo del String " + cad1
+ " es " + largo);
String cad3 = cad1.substring(0, 3);
System.out.println("Los primeros tres caracteres
de " + cad1 + " son " + cad3);
int posi = cad1.indexOf(cad2);
if (posi == -1) {
System.out.println(cad2 + " no está
contenido en " + cad1);
} else {
System.out.println(cad2 + " está contenido
en " + cad1 + " a partir de la posición " + posi);
}
System.out.println(cad1 + " convertido a
mayúsculas es " + cad1.toUpperCase());
System.out.println(cad1 + " convertido a
minúsculas es " + cad1.toLowerCase());
}
}
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Salidas:
Ingrese la primer cadena:Hola
Ingrese la segunda cadena:Pedro
Hola no es exactamente igual a Pedro
Hola no es igual a Pedro sin tener en cuenta
mayúsculas/minúsculas
Pedro es mayor alfabéticamente que Hola
El primer caracter de Hola es H
El largo del String Hola es 5
Los primeros tres caracteres de Hola son Hol
Pedro no está contenido en Hola
Hola convertido a mayúsculas es HOLA
Hola convertido a minúsculas es hola
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

EJEMPLO DE SOCKETS

EJEMPLO DE UN SOCKET SERVER

package Sockets;
//import java.net.*;
import java.net.*;
import java.io.*;
import java.util.Scanner;

public class Servidor {

static int PUERTO = 5000; // aquí definimos el


puerto

ServerSocket sc;
Socket so;

DataOutputStream salida; // bufer para armar las


salidas o lo que debe responder
DataInputStream entrada; // bufer para recibir datos

String mensajeRecibido; // Variable donde guardo lo


que llega

public void initServidor() {

Scanner teclado = new Scanner(System.in);


try {
sc = new ServerSocket(PUERTO); //arbrir el
puerto
so = new Socket();

System.out.println("Esperando conexión...");
so = sc.accept();
System.out.println("Se conecto un
cliente...");
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

entrada = new
DataInputStream(so.getInputStream()); //armar el
constructor de recibo
salida = new
DataOutputStream(so.getOutputStream());
String msn = "";
while (!msn.equals("x")) {

mensajeRecibido = entrada.readUTF();//
Leemos lo que llega
System.out.println(mensajeRecibido);
System.out.println("responder al
cliente --> escriba algo");
msn = teclado.nextLine();
salida.writeUTF("" + msn);// enviamos
mensaje

}
// sc.close();
} catch (Exception e) {

}
}

public static void main(String[] args) {


Servidor o = new Servidor();
o.initServidor();
}

EJEMPLO DE UN SOCKET CLIENTE

package Sockets;
import java.net.*;
//import java.net.*;
import java.io.*;
import java.util.Scanner;

public class Cliente {


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

static String HOST = "localhost"; // ip a la cual


conectarme (127.0.0.1)
static int PUERTO = 5000; //puerto del servidor
Socket sc;
DataOutputStream salida;
DataInputStream entrada;
String mensajeRecibido;

public void initCliente() {


Scanner teclado = new Scanner(System.in);

try {
sc = new Socket(HOST, PUERTO); //LLanar al
servidor
salida = new
DataOutputStream(sc.getOutputStream());
entrada = new
DataInputStream(sc.getInputStream());
String msn = "";
System.out.println("digite x para
terminar");

while (!msn.equals("x")) {
System.out.println("Escriba un msn para
enviar");
msn = teclado.nextLine();

System.out.println("Le escribí al
servidor");

salida.writeUTF(msn);// enviamos
mensaje
System.out.println("El servidor me
respondio");
mensajeRecibido = entrada.readUTF();//
Leemos respuesta
System.out.println(mensajeRecibido);
}

sc.close();
} catch (Exception e) {
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

}
}

public static void main(String[] args) {


Cliente o = new Cliente();
o.initCliente();
}

digite x para terminar


Escriba un msn para enviar
hola mundo
Le escribí al servidor
El servidor me respondio
gracias
Escriba un msn para enviar
hola
Le escribí al servidor
El servidor me respondio
como estas
Escriba un msn para enviar
me llamo alexis
Le escribí al servidor
El servidor me respondio
ok
Escriba un msn para enviar
x
Le escribí al servidor
El servidor me respondio
x

Vous aimerez peut-être aussi