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