Tema 2. El lenguaje de programación Java. Arrays y cadenas



Documentos relacionados
Tipos primitivos y clases de interés

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Formato para prácticas de laboratorio

Paquetes de java. java.applet

10. Algunas clases estándar de Java (I)

Tema 2: La clase string

Tema 2. El lenguaje de programación Java (Parte 1)

11. Algunas clases estándar de Java (II)

Modulo 1 El lenguaje Java

FACULTAD DE INGENIERÍA

Por convención, se declaran primero las variables (atributos) miembro de la clase y luego las declaraciones e implementaciones de métodos.

Arrays y Cadenas en C

Elementos léxicos del lenguaje de programación Java

Introducción al lenguaje JAVA

Programación Avanzada para Sistemas de Telecomunicación Arrays

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Resumen Lenguaje Java

Programación Orientada a Objetos con Java

Programación Orientada a Objetos: Arreglos en Java

Manual del Protocolo XML-RPC de Mensajería Negocios

Programación Orientada a Objetos en Java

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

El lenguaje de Programación C. Fernando J. Pereda

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

FUNDAMENTOS DE INFORMÁTICA

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo.

Objetivo de aprendizaje del tema

Computación III. Objetivo de aprendizaje del tema

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

Funciones mas importantes para el manejo de Caracteres

1 ELEMENTOS BASICOS DEL LENGUAJE

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

7. Manejo de Archivos en C.

TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

James Gosling, creador de Java

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Introducción al tipo de dato ARRAY

Trabajo Práctico N 4: Diseño por Contratos

Introducción a la programación orientada a objetos

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Técnicas Avanzadas de Testing Automatizado

Tema 3 Elementos básicos de programación

15. Parámetros o argumentos

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

1.00 Clase 3. Tipos de datos en Java

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Tema: Clases y Objetos en C++.

Introducción al lenguaje Java

8. Sentencia return y métodos

Ejercicio 1 (3 puntos).-

PROGRAMACIÓN EN JAVA

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Java Inicial (20 horas)

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Introducción al lenguaje de programación java

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Clase adicional 3. Métodos. Temas

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

El lenguaje de programación Java

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Benemérita Universidad Autónoma del Estado de Puebla

2.1. Introducción al lenguaje Java

Tema: Arreglos de Objetos en C++.

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Curso Introducción JAVA Pág.: 1

Tema 1. Introducción a JAVA

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Repaso de las características más importantes de la programación Java y su adaptación a Android

Multitarea en Java. Rafa Caballero - UCM

PART II: Moviendo al jugador

La clase estándar Scanner

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

9. Objetos y clases Clases

TEMA 2. Agenda. Fundamentos de JAVA

Metodología y Tecnología de la Programación

FACULTAD DE INGENIERÍA

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Cómo nombrar variables ( 2&

Programación Orientada a Objetos

Ejercicios de evaluación de fundamentos de programación en Java

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Curso de Java POO: Programación orientada a objetos

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez

2. Estructura de un programa en Java

Tema 2: Clase y objetos en Java. Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle

Taller de Programación I. Tema 04: Arreglos y Matrices en Java

Transcripción:

Programación en Java Tema 2. El lenguaje de programación Java. Arrays y cadenas Luis Rodríguez Baena Facultad de Informática

Arrays y colecciones Hay dos formas de guardar varias referencias a objetos: Arrays Más eficiente. Tamaño limitado. Sólo puede almacenar referencias de un tipo. Colecciones. Menos eficiente. Tamaño variable. Almacena objetos sin tipo específico. Clases genéricas List, Set y Map. Facultad de Informática Luis Rodríguez Baena, 2003 2

Declaración de arrays No son un tipo de dato, sino una clase que extiende la clase Object. Declaración. modificadores tipo[] identificador; Los modificadores se aplican al array, no a los elementos. Asignar espacio de almacenamiento creando una instancia mediante new. int[] a = new int[5]; int b[]; b = new int[3]; length, indica el número de elementos. Los índices van de 0 hasta length 1. Cualquier otro valor lanza la excepción ArrayIndexOutOfBoundException. Facultad de Informática Luis Rodríguez Baena, 2003 3

Inicialización de arrays (I) Inicialización a los valores por omisión. Un array de tipos primitivos inicializa los elementos a sus valores por omisión. Un array de referencias inicializa los elementos a referencias nulas (). Un array de referencias no guarda el contenido del objeto, sino una referencia a la instancia. 0 1 2 3 4 0 1 2 3 4 0 0 0 0 0 int a[] = new a[5]; a String palabras[] = new String[5]; palabras Facultad de Informática Luis Rodríguez Baena, 2003 4

Inicialización de arrays (II) Llenar el array. Mediante asignaciones: int[] a = new int[5]; //Carga de elementos en el array //con números aleatorios entre 0 y 19. for (int i=0;i<=a.length-1;i++) a[i] = (int) (Math.random() * 20); En arrays de referencia. H o l a 0 1 2 3 4 palabras[3] = "Hola"; palabras Facultad de Informática Luis Rodríguez Baena, 2003 5

Inicialización de arrays (III) Inicialización de arrays en la declaración. Sólo se puede hacer en la declaración. No se debe poner el tamaño del array. Se crea espacio de almacenamiento y se rellena en la misma declaración char b[] = {'a','b','c'};. Integer números[] = { new Integer(1), new Integer(2), new Integer(3)}; Facultad de Informática Luis Rodríguez Baena, 2003 6

Asignación de arrays Cuando se asigna un array a otro array se copia la referencia. H 0 1 2 3 4 o l a palabras2 Copiar un array supone asignar los elementos a otro array. String palabras2[] = palabras; x palabras x x x palabras2 0 1 2 3 4 palabras2[3] = xxxx palabras La clase System contiene un método para copiar arrays. public static void arraycopy(object origen, int posorig, Object dest, int posdest, int length) Facultad de Informática Luis Rodríguez Baena, 2003 7

Arrays y métodos Arrays y métodos. Los métodos también pueden devolver arrays. static int[] cargaarray(int n){ int[] a = new int[5]; for (int i=0;i<=a.length-1;i++) a[i] = (int) (Math.random() * 20); return a; } O recibir arrays como argumentos En este caso, el array se pasa por referencia (como todos los objetos). static void imprimirarray(object[] v){ //Muestra los elementos del array for (int i=0;i<=v.length-1;i++) System.out.println("Elemento " + i + ": " + v[i]); } Facultad de Informática Luis Rodríguez Baena, 2003 8

Arrays multidimensionales (I) Declaración. String [][] cad = new String[3][2]; cad String cad[][] = new String[3][]; cad[1] = new String[3]; String otra[] = { hola, adios }; cad[2] = otra; hola adios cad otra Facultad de Informática Luis Rodríguez Baena, 2003 9

Arrays multidimensionales (II) El atributo length en arrays multidimensionales. a.length, devolvería el tamaño de la primera dimensión. a[i].length, devolvería el tamaño de la fila i. for(int i=0;i <= cad.length-1;i++){ System.out.println("Línea " + i ); if(cad[i] == ) System.out.println(cad[i]); else for(int j=0;j<=cad[i].length-1;j++) System.out.println(cad[i][j]+" "); }; Facultad de Informática Luis Rodríguez Baena, 2003 10

El array args Contiene los argumentos pasados mediante la línea de órdenes. class HolaMundo { public static void main(string args[]) { // Muestra " Hola mundo, hoy es dd-mm-aa!" int conta = args.length; System.out.print("!Hola "); if(conta>0){ for(int i=0;i<=conta-1;i++) System.out.print(args[i] + ", "); System.out.println(); } else System.out.println("anónimo,"); } } Facultad de Informática Luis Rodríguez Baena, 2003 11

La clase Arrays (I) La bibilioteca java.utils contiene la clase Arrays con funciones de utilidad para los arrays. Sería necesario incorporar import java.utils.*; al comienzo del archivo fuente. Comparar arrays. public static boolean equals(tipo[] a, tipo[] a2) int v1[] = {1,2,3}; int v2[] = {1,2,3}; System.out.println(Arrays.equals(v1,v2)); Facultad de Informática Luis Rodríguez Baena, 2003 12

La clase Arrays (II) Rellenar arrays. Rellenar el array a con el valor del segundo argumento. public static void fill(tipo[] a, tipo val) Rellenar el array a entre dos posiciones dadas con el valor del segundo argumento. public static void fill(tipo[] a, int desde, int hasta, tipo val) Ordenar arrays. public static void sort(tipo[] a) Buscar en arrays public static int binarysearch( tipo[] a, tipo elemento) Buscar el elemento en el array. Si lo encuentra devuelve su posición, si no devuelve un número negativo con la posición donde debería estar. Facultad de Informática Luis Rodríguez Baena, 2003 13

Cadenas Dos clases para almacenar cadenas. String. Cadenas inmodificables. Consume menos recursos. StringBuffer. Cadenas modificables. h o l a cad1 String cad1 = hola ; a b c cad2 StringBuffer cad2 = abc ; h o l a cad1 = adios cad1 a d i o s a b c d e f cad2.append( def ); cad2 Facultad de Informática Luis Rodríguez Baena, 2003 14

Constructores de String y StringBuffer Se puede construir un objeto de la clase String como si se tratara de un tipo de dato primitivo. String cad1 = hola ; Constructores de String: String(), crea una nueva cadena vacía. String(String valor). Crea una nueva cadena a con el contenido de valor. String(StringBuffer sb). Crea una nueva cadena a partir de un StringBuffer. Constructores de StringBuffer: StringBuffer(), crea una nueva cadena vacía con una capacidad inicial de 16 caracteres. StringBuffer(int longitud). Crea una nueva cadena vacía con una capacidad inicial de longitud caracteres. StringBuffer(String str). Crea un nuevo StringBuffer a partir de una valor de tipo String. Facultad de Informática Luis Rodríguez Baena, 2003 15

Comparación de cadenas (I) El operador de igualdad sólo compara si las referencias son iguales. String c1 = "hola"; String c2; String c3 = new String(c1); c2 = c1; System.out.println(c1 == c2); //Devuelve true System.out.println(c1 == c3); //Devuelve false Método equals. public boolean equals(string str) System.out.println(c1.equals(c3)); //Devuelve true Facultad de Informática Luis Rodríguez Baena, 2003 16

Comparación de cadenas (II) Método equalsignorecase. public boolean equalsignorecase(string str) c3 = "Hola"; System.out.println(c1.equalsIgnoreCase(c3)); //Devuelve true Método compareto. public int compareto(string str) Devuelve 0 si las cadenas son iguales; mayor que 0 si la cadena que invoca es mayor que str o menor que 0 si la cadena que invoca es menor que str. El número que devuelve es la direfencia entre los códigos del primer carácter de la cadena. c3 = "Hola"; System.out.println(c1.compareTo(c3)); //Devuelve 32 c3 = "Adios"; System.out.println(c3.compareTo(c1)); //Devuelve -39 Facultad de Informática Luis Rodríguez Baena, 2003 17

Comparación de cadenas (III) Método comparetoignorecase. public int comparetoignorecase(string str) c3 = "Hola"; System.out.println(c1.compareToIgnoreCase(c3)); //Devuelve 0 c3 = "Adios"; System.out.println(c3.compareToIgnoreCase(c2)); //Devuelve -7 Comparar con StringBuffer. public boolean contentequals(stringbuffer sb) StringBuffer sb1 = new StringBuffer( hola ); System.out.println(c1.contentEquals(sb1)); //Devuelve true Facultad de Informática Luis Rodríguez Baena, 2003 18

Métodos de String (I) Otros métodos: public int length() public char charat(int i) Devuelve el carácter contenido en la posición i. El argumento debe ser mayor o igual que 0 y menor que length() -1. public int indexof(int c) Devuelve la posición de la primera ocurrencia del carácter c o -1 si no está. public int indexof(int c, int inicio) Devuelve la posición de la primera ocurrencia del carácter c a partir de la posición inicio o -1 si no está. c1 = "cocodrilo"; System.out.println(c1.indexOf('o')); //Devuelve 1 System.out.println(c1.indexOf('o',5)); //Devuelve 8 Facultad de Informática Luis Rodríguez Baena, 2003 19

Métodos de String (II) public int lastindexof(int c) Devuelve la posición de la última ocurrencia del carácter c o -1 si no está. public int indexof(int c, int inicio) Devuelve la posición de la última ocurrencia del carácter c a partir de la posición inicio (contando desde el final) o -1 si no está. c1 = "cocodrilo"; System.out.println(c1.lastIndexOf('o')); //Devuelve 8 System.out.println(c1.lastIndexOf('o',7)); //Devuelve 3 public String touppercase() public String tolowercase() public String substring(int inicio) public String substring(int inicio, int fin) Devuelve una subcadena formada a partir del carácter inicio hasta el carácter fin. public String[] split(string expr) Devuelve un array de cadenas formado por subcadenas separadas a partir del separador expr. Facultad de Informática Luis Rodríguez Baena, 2003 20

Métodos de StringBuffer (I) Otros métodos: public int length() public char charat(int i) public int indexof(int c) public int indexof(int c, int inicio) public int lastindexof(int c) public int indexof(int c, int inicio) public String touppercase() public String tolowercase() public String substring(int inicio) public String substring(int inicio, int fin) public String[] split(string expr) Facultad de Informática Luis Rodríguez Baena, 2003 21

Métodos de StringBuffer (II) Gestión de la capacidad de la cadena. public int capacity() Devuelve la capacidad del buffer (no su longitud). public void ensurecapacity(int minimo) Asegura una capacidad mínima al buffer. public void setlength(int nuevalong) Modifica la longitud de la cadena (no su capacidad). Facultad de Informática Luis Rodríguez Baena, 2003 22

Métodos de StringBuffer (III) Modificación de caracteres public void setcharat(int pos, char car) Sustituye el carácter de la posición pos por el carácter car. public StringBuffer replace(int inicio, int fin, String str) Reemplaza los caracteres comprendidos entre inicio y fin por str. La clase String tiene además el método replace(char car1,char car2) que sustituye todas las apariciones de car1 por car2. public StringBuffer append(tipo valor) Añade una representación de valor al final del StringBuffer. public StringBuffer insert(int pos, tipo valor) Inserta una representación de valor en la posición pos. public StringBuffer delete(int inicio, int fin) Borra los caracteres situados entre la posición inicio y fin. Facultad de Informática Luis Rodríguez Baena, 2003 23

Conversiones de cadenas de texto Tipo boolean byte short int long float double A String String.valueOf(boolean) String.valueOf(int) String.valueOf(int) String.valueOf(int) String.valueOf(long) String.valueOf(float) String.valueOf(double) De String new Boolean(String).booleanValue() Byte.parseByte(String, int base) Byte.parseByte(String) Short.parseShort(String, int base) Short.parseShort(String) Integer.parseInt(String, int base) Integer.parseInt(String) Long.parseLong(String, int base) Long.parseLong(String) Float.parseFloat(String) Double.parseDouble(String) Facultad de Informática Luis Rodríguez Baena, 2003 24

Conversiones a/de arrays de char Constructores String(char[] caracts, int inicio, int longitud) String(char[] caracts) Métodos que devuelven cadenas a partir de arrays de char. public static String copyvalueof(char[]caracts) public static String copyvalueof(char[]caracts int inicio, int longitud) Devuelve una cadena formada por los caracteres de caracts. Métodos que devuelven arrays de char a partir de una cadena public char[] tochararray() Devuelve un array de char a partir de la cadena que invoca. public void getchars(int ini, int fin, char[] dest,int destinicio) Copia caracteres desde la posición ini a la posición fin al array dest a partir de la posición destinicio. Facultad de Informática Luis Rodríguez Baena, 2003 25

Conversiones a/de arrays de byte Constructores String(byte[] bytes, int inicio, int longitud) String(byte[] bytes) Métodos que devuelven arrays de byte a partir de una cadena public byte[] getbytes() Facultad de Informática Luis Rodríguez Baena, 2003 26