0.3 Stream String Random

Download Report

Transcript 0.3 Stream String Random

Archivos

Las clases

FileReader

y

BufferedReader

brindan servicios para manejar archivos.

Las instrucciones:

FileReader fr = new FileReader (ruta); BufferedReader in = new BufferedReader (fr);

permiten abrir un archivo y ligarlo a la variable in. La variable ruta especifica la dirección del archivo dentro de nuestro disco duro.

Archivos

La instrucción

String str = in.readLine();

Lee una línea del archivo y la almacena en la cadena de caracteres ligada a la variable str.

in.close();

Cierra el archivo ligado a in.

Archivos

La apertura y lectura de archivos puede provocar errores en ejecución que es necesario prevenir y evitar.

Java brinda servicios para detectar y manejar

excepciones

, definiendo bloques encerrados entre las palabras reservadas try-catch.

Archivos

try{ FileReader fr = new FileReader(ruta); BufferedReader in = new BufferedReader(fr); String str = in.readLine(); in.close(); } catch (IOException err) { System.out.println

("Error al procesar el archivo"); }

Archivos

Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos. (En cada línea se almacenó un único elemento).

Archivos

import java.io.*; class TesterSecuencia public static void { main (String[] args) { } String ruta=“secuencia.txt”; int cont = procesarArchivo(ruta); System.out.println (“La cantidad de elementos de la secuencia es “ + cont);

Archivos

public static int procesarArchivo (String ruta) { int cont=0; try { BufferedReader in = new BufferedReader(new FileReader(ruta)); String str; While ((str = in.readLine())!= null){ cont++; } in.close(); } catch (IOException err) { System.out.println

(“Error al leer el archivo"); } return cont; }

Archivos

Implementar una clase Secuencia que brinde servicios para:

Leer una secuencia de números de un archivo y computar la cantidad de 0.

Leer una secuencia de decidir si los dos números de un archivo y últimos elementos de la secuencia son 0.

Implemente una clase tester para Secuencia.

La clase String

Un lenguaje orientado a objetos brinda facilidades para que el programador defina clases que especifican patrones de comportamiento para las entidades de un problema. Los lenguajes ofrecen generales y reusables. además clases predefinidas, La mayor parte de las aplicaciones usan cadenas de caracteres, de modo que una clase que permita crear y manipular cadenas será una de las más generales y reusables que pueden ofrecerse. Introducción a la Programación Orientada a Objetos

La clase String

La

clase String

provista por Java brinda facilidades para almacenar y procesar cadenas de caracteres. El

estado interno

de una instancia de tipo

String

es una secuencia de caracteres encerrados entre comillas. Una

variable

de tipo

String nombra

a una secuencia de este tipo.

Introducción a la Programación Orientada a Objetos

La clase String

Declaración, creación e inicialización String cad = "Buenas Buenas …"; String cad; cad = new String("Buenas Buenas …" ); Ahora la variable cad puede recibir mensajes que se ligarán a métodos provistos por la clase String. Ninguno de estos métodos modifica el estado interno de la variable.

Introducción a la Programación Orientada a Objetos

La clase String

Length() toLowerCase() toUpperCase() trim() charAt(Pos)

retorna la cantidad de caracteres de una cadena retorna la misma cadena pero con todos los caracteres en minúscula retorna la misma cadena pero con todos los caracteres en mayúscula retorna la misma cadena pero sin espacios retorna el caracter que está en la posición que corresponde al argumento Introducción a la Programación Orientada a Objetos

substring(Ini)

La clase String

retorna la subcadena a partir de la posición Ini

substring(Ini,Fin) indexOf(A) lastIndexOf(A) compareTo(A)

retorna la subcadena a partir de la posición Ini hasta la anterior a la posición Fin retorna la posición de la primera aparición de la subcadena A en la cadena retorna la posición de la última aparición de la subcadena A en la cadena Retorna un

número negativo

si A es mayor a cad,

0

si son iguales y un

número positivo

en otro caso.

Introducción a la Programación Orientada a Objetos

La clase String

Los métodos substring y indexOf reciben como argumento un índice, en Java el mínimo valor para un índice es 0. Los métodos indexOf y lastIndexOf retornan –1 si la subcadena no aparece en la cadena. La comparación no se realiza a través del operador relacional

==

.

Introducción a la Programación Orientada a Objetos

La clase String

cad.length()

retorna 16

cad.toLowerCase()

retorna “buenas buenas...”

cad.toUpperCase()

retorna “BUENAS BUENTAS...”

cad.trim()

retorna “BuenasBuenas...”

cad.charAt(1)

retorna u

cad.charAt(100)

StringIndexOutOfBoundsException: String index out of range: 100 (in java.lang.String)

Introducción a la Programación Orientada a Objetos

La clase String

cad.substring(3)

retorna “nas Buenas...”

cad.substring(3,5)

retorna “na”

cad.substring(3,25)

StringIndexOutOfBoundsException: String index out of range: 25 (in java.lang.String)

Introducción a la Programación Orientada a Objetos

La clase String

cad.indexOf (“Bue”)

retorna 0

cad.indexOf (“Nue”)

retorna -1

cad.lastIndexOf (“Bue”)

retorna 7

cad.compareTo (“Buenos Aires”)

retorna un número negativo

Introducción a la Programación Orientada a Objetos

La clase String

Mostrar

System.out.println (cad) ;

Concatenar

System.out.println ("El ganador es "+nombre);

Conversión implícita y Concatenación

System.out.println ("El puntaje es "+10); Introducción a la Programación Orientada a Objetos

La clase String

Conversión explícita

Para convertir un número en una cadena de caracteres se emplea el método

valueOf int valor=10; String str=String.

valueOf (valor);

La clase

String

proporciona versiones de

valueOf

convertir los datos primitivos: para

int, long, float, double.

Introducción a la Programación Orientada a Objetos

La clase String

Conversión explícita

Para convertir una cadena en un número entero, primero quitamos los espacios en blanco al principio y al final y usamos el método

parseInt

de la clase

Integer

que describiremos más adelante.

String str=" 12 "; int numero=Integer.parseInt(str.trim());

Para convertir un

string

en número decimal se requieren dos pasos: convertir la cadena en un objeto de la clase

Double

, mediante el método

valueOf

, y a continuación convertir el objeto de la clase

Double

tipo primitivo double mediante el método

doubleValue

en un

String str="12.35 "; double num=Double.valueOf(str).doubleValue();

Introducción a la Programación Orientada a Objetos

La clase Random

Un

número aleatorio

es un valor obtenido como resultado de computar una

función de distribución

. Un

generador

de números aleatorios se utiliza cuando se desea simular

situaciones de azar

. La clase

Random

de Java es un generador de número

pseudo-aleatorios

. Los números no son realmente aleatorios porque se obtienen a través de un algoritmo que genera una secuencia distribuida uniformemente, a partir de una

semilla

inicial.

Introducción a la Programación Orientada a Objetos

La clase Random

La clase brinda dos constructores para crear objetos

Random

, uno sin parámetros y otro con un parámetro que establece el valor de la semilla. Si no se especifica parámetro, el constructor usa la hora actual del sistema como semilla, lo que disminuye la posibilidad de obtener secuencias de números repetidas. Cuando se crea un objeto

Random

con una semilla como parámetro, se puede obtener a continuación lo que parece una secuencia aleatoria, pero si se vuelve a inicializar el objeto con la misma semilla se vuelve a obtener la misma secuencia.

Introducción a la Programación Orientada a Objetos

La clase Random

1.Importar el paquete que incluye a la clase import java.util.Random; Random . 2.Crear un objeto de la clase Random Random rnd = new Random(); Random rnd = new Random(100); 3.Invocar a uno de los métodos que generan un número aleatorio rnd.nextInt(); rnd.nextInt(3); rnd.nextFloat(); Introducción a la Programación Orientada a Objetos

La clase Random

Para generar una secuencia de 10 números aleatorios entre 0.0 y 1.0 escribimos for (int i = 0; i < 10; i++) { System.out.println(rnd.nextDouble()); } Introducción a la Programación Orientada a Objetos

La clase Random

En el doble o mitad, un jugador apuesta una cantidad y tira una moneda. Si sale cara obtiene el doble de la cantidad apostada. Si sale cruz, pierde la mitad. Implemente una simulación para el juego que parta de un valor inicial y lo actualice según en la moneda se obtenga cara o cruz, hasta que llegue a tener menos de $1 o se realicen 50 tiradas.

Introducción a la Programación Orientada a Objetos

La clase Random

import java.util.Random; public class DobleOMitad { public static void main (String arg[]) { Random gen; gen = new Random(); } System.out.print("Ingrese de la apuesta "); int m = ES.leerEntero(); int i = 0; int caracruz; …

Introducción a la Programación Orientada a Objetos

La clase Random

import java.util.Random; public class DobleOMitad { public static void main (String arg[]) { Random gen; gen = new Random(); … while (i<50 && m > 1) { i++; caracruz = gen.nextInt(2)+1; if (caracruz==1) {m = m*2; System.out.println (i+" cara " +m);} else { m = m / 2; System.out.println (i+" cruz " +m);} } }

Introducción a la Programación Orientada a Objetos