Curso de JAVA
Orden
del Concepto
concepto
Módulo 1
1.0 Introducción a Java
2.0 Instalación del Software necesario
3.0 Interfaces Graficas - GUI
4.0 Variables y comentarios en Java
5.0 Cuadros de Diálogo con JOptionPane de Swing
6.0 Operadores en Java
6.1 Operadores Matematicos
6.2 Operadores de Incremento y Decremento
6.3 Operadores Relacionales
6.4 Operadores Logicos
7.0 Sentencias de control
7.1 Sentencia de control : if-else
7.2 Sentencia de control : Switch
7.3 Sentencia de control : Bucles
8.0 Metodos, Funciones y procedimientos
9.0 Funciones Básicas con Cadenas
10.0 Arreglos en Java
11.0 Listas en Java
12.0 Programación Orientada a Objetos (P.O.O)
Creación de clases, instancias, propiedades y métodos de
12.1
objetos
12.2 (P.O.O) Herencias
12.3 (P.O.O) Modificadores de acceso
12.4 (P.O.O) Variables y Métodos estáticos
12.5 (P.O.O) Arrays
13.0 Operaciones con MySql
13.1 BBDD MySql
13.2 Creando y eliminando tablas en MySql
13.3 Modificando tablas en MySql
13.4 Conectando la Web con la BBDD
13.5 Obteniendo registros de la BBDD
13.6 Importaciones de tablas-Búsqueda de filtros
13.7 Página de búsqueda
13.8 Insertando registros en BBDD
13.9 Eliminando registros en BBDD
13.10 Actualizando registros en BBDD
14 Inyecciones SQL
14.1 Inyección SQL
14.2 Consultas preparadas evitando inyección SQL
14.3 Consultas preparadas insertar registros en MySql
http://www.manualweb.net/java/literales-java/
http://www.manualweb.net/java/operadores-asignacion-aritmeticos-java/
http://www.utn.edu.ec/reduca/programacion/estructuras/anlisis2.html
1.-Introduccion a Java
¿Qué es un archivo java?
Java es un lenguaje de programación y una plataforma informática
comercializada por primera vez en 1995 por Sun Microsystems.
Java es rápido, seguro y fiable. Se usa en portátiles , consolas para juegos, en
súper computadoras y teléfonos móviles
Usado particularmente para aplicaciones de cliente-servidor de web
Entornos de funcionamiento
En dispositivos móviles y sistemas embebidos
En el navegador web
En sistemas de servidor
En aplicaciones de escritorio
En plataformas soportadas
2.-Instalacion del Software
Se requiere instalar los siguientes programas:
a) JDK
b) JRE
c) Apache Netbeans 12.0
Nota importante: seguir este orden de instalación
Y en caso de ser necesario instalar las variables de sistemas:
a) JAVA_HOME
b) M2_HOME
Y para el caso de Maven descargar la carpeta de Maven del sitio oficial:
https://maven.apache.org
ir a la sección de descargas y estando aquí se mostrara la siguiente imagen:
Procederemos a descargar la sección marcada. Esa carpeta será ubicada en la
unidad C para luego configurar la variable de sistema Maven.
3.-Interfaces graficas – GUI :
Librerias Swing en Java
Swing es una biblioteca de interfaces graficas de usaurio (GUI) para java
Viene incluida con el entorno de desarrollo de java (JDK)
Extiende a otra librería grafica mas antigua llamada AWT
VENTANAS:
JFrameForm: la clase JFrameForm proporciona operaciones para manipular
ventanas y contiene todos los componentes utilizados en la interfaz grafica
de usuario
JInternalFrame : Utilizada como ventana interna dentro de un
DesktopPane para implementart comopnentes
COMPONENTES DE UNA VENTANA:
Jpanel: componente con un Layout manager propio, y
que puede contener varios componentes en su interior
JButton: componente que permite implementar un
Boton de pulsación
JLabel: Muestra una pequeña área de texto o imagen en
la interfaz grafica de usuario.
JTextField: Componente que permite ingresar una línea
de texto y editarlo
JTextArea: Componente que muestra un control
para ingresar varias líneas de texto y editarlo.
JCheckBox: Permite seleccionar o deseleccionar uno
o varios ítems de un conjunto de opciones.
JRadioButton: Componentes para mostrar varias
opciones de las cuales solo se puede seleccionar una.
JComboBox: Usado para implementar una lista
desplegable de varias opciones de las cuales solo se
puede seleccionar una.
JList: Permite implementar una lista con varias opciones
de las cuales se puede seleccionar una o varias.
JMenuBar: Permite implementar un menú de ítems y subitems de
opciones en java
JTable: Permite implementar una tabla para
poder mostrar información en sus celdas.
PROPIEDADES DE LOS COMPONENTES:
BackGround: Permite modificar el color de fonfo de un componente
ForeGround: Propiedad para modificar el color de la letra de un
componente
Font: Permite modificar la fuente, el estilo y el tamaño de la letra de un
componente
Icon: Propiedad que me permite insertar un icono o imagen en un
componente
Text: Para definir la linea de texto que se va a viasualizar en el componente
Cursor: Define el estilo del cursor del mouse
ToolTipText: Permite ingresar un mensaje de ayuda que se visualizara
cuando pasemos el mouse sobre el componente
Enable: Permite habilitar o deshabilitar un componente
Interfaz de múltiples documentos(MDI)
Los programas de ordenador gráficos de interfaz de múltiples documentos (MDI) son aquellos cuyas ventanas
se encuentran dentro de una ventana padre (normalmente con la excepción de las ventanas modales), de
manera opuesta a una interfaz de documento único o SDI.
Tambien podemos optar por agregar un Jframe Form:
Y dentro de el agregar un Desktop Pane dentro de este formulario:
Y simplemente arrastrando este elemento al Jframe habremos agregado un MDI
Agregando una Barra de Menu
En la paleta principal nos ubicamos en “Swing Menus” y arrastramos la opción “Menu Bar” a la parte superior
de nuestro formulario.
Agregando un Menu
En la paleta principal nos ubicamos en “Swing Menus” y arrastramos la opción “Menu” a la parte superior donde
se encuentra la Barra Menu de nuestro formulario.
Dando un doble clic sobre el nombre del menú podemos editarlo:
Agregando un SubMenu
En la paleta principal nos ubicamos en “Swing Menus” y arrastramos la opción “Menu Item” a la parte superior
de nuestro formulario y buscamos al menú en donde será agregado
Si deseamos realizar algún cambio dentro de este submenú damos clic derecho sobre el :
Acciones agregadas a un SubMenu
Nos ubicamos sobre el submenu y damos clic derecho -> Events->Action-> actionPerformed: y pulsamos enter y
accederemos al codigo de ese submenu creado.
O simplemente doble clic sobre el Submenu :
int resultado= JOptionPane.showConfirmDialog(rootPane,"Desea cerrar la
aplicacion","confirmacion",JOptionPane.YES_NO_OPTION);
if (resultado == JOptionPane.YES_OPTION){
System.exit(0);
Podemos agregar este código para cerrar la aplicación
Modificando el nombre de variable a un
SubMenu
4.-Variables y Comentarios en Java
Las variables Java son un espacio de memoria en el que guardamos un
determinado valor (o dato). Para definir una variable seguiremos la estructura:
Sintaxis:
[privacidad] tipo_variable NombreVariable;
Tipos de variables
Variables de instancia (campos no estáticos), son las variables que están
definidas dentro de un objeto pero que no tienen un modificador de estáticas
(static). Suelen llevar un modificador de visibilidad (public, private, protected)
definiéndose.
class Triangulo {
private long base;
private long altura;
}
Variables de clase (campos estáticos), son aquellas variables que están
precedidas del modificador static. Esto indica que solo hay una instancia de dicha
variable. Es decir, aunque tengamos N objetos de la clase, la variable estática solo
se instancia una vez.
class Triangulo {
static long lados = 3;
}
Si además queremos que el valor no pueda cambiar nunca , la definiremos como
final.
class Matematicas {
final static long PI = 3.14159;
}
Variables locales, son variables temporales cuyo ámbito de visibilidad es el
método sobre el que están definidas. No pueden ser accedidas desde otra parte
del código. Se las distingue de las variables de instancia ya que estas no llevan
modificadores de visibilidad delante.
int variable = 2;
Parámetros, son las variables recibidas como parámetros de los métodos. Su
visibilidad será el código que contenga dicho método.
public Triangulo(long base, long altura){...}
Tipos de Datos Primitivos en Java
El lenguaje Java da de base una serie de tipos de datos primitivos.
byte
short
int
long
float
double
boolean
char
Asignacion de valores en Java
¿Qué son los valores en Java?
Los valores son aquellos contenidos asignados a las variables. Dependiendo del
tipo de variable podremos asignar unos valores u otros.
Asignacion de enteros
Los enteros que podemos utilizar serán byte, short, int y long. Los literales que
les asignemos siempre será un número entero.
byte variableByte = 12;
short variableShort = 12;
int variableInt = 12;
long variableLong = 12;
long variableLong = 12L;
int variableBinaria = 011010;
int variableHexadecimal = 0x1a;
para el uso de valores hexadecimales se debe anteponer al valor “0x”
Asignacion de decimales
Los dos tipos de datos de decimales que podemos manejar son float y double.
Para estos casos la representación del literal de decimales serán con separación de
un punto entre la parte entera y la parte decimal.
float variableFloat = 12.2;
double variableDouble = 12.2;
float variableFloat = 12.2F;
double variableDouble = 12.2D;
Asignacion de caracteres y cadenas
Tanto los caracteres del tipo de dato char, como las cadenas del tipo de
datos String contienen caracteres Unicode UTF-16.
Para los caracteres utilizaremos comillas simples para delimitarlos, mientras que
para las cadenas utilizaremos comillas dobles.
char variableChar = ‘a’;
String variableString = “cadena”;
Asignacion de Valores subrayados
A partir de la versión 1.7 de Java se puede utilizar el subrayado para realizar
separaciones entre números para una mejor visualización.
A todos los efectos el valor del número es como si no existiese el carácter de
subrayado.
long tarjetaCredito = 1234_5678_9012_3456L;
long mascaraBinaria = 0b11010010_01101001_10010100_10010010;
Comentarios en Java
Comentarios de varias líneas.
Los comentarios de varias líneas se incluyen entre los símbolos /* y */.
/*
Este es un ejemplo de
un comentario de varias
líneas.
*/
Comentarios de una sola línea.
Para comentariar una sola línea se utiliza la doble diagonal //. El comentario se
inicia cuando se encuentra la doble diagonal y continua hasta el final de la línea.
// Este es un comentario de una sola linea
//Este es otro comentario
5.-Cuadros de Diálogo con
JOptionPane de Swing
JOptionPane es una clase que nos provee una conjunto de ventanas de dialogo
que es ideal, para mostrar mensajes al usuario.
Para poder ser visualizada se debe importar la siguiente librería, en ocasiones es
automática y en otras se lo debe hacer de forma manual y se ubica al inicio del
Jframe.
package newpackage;
import javax.swing.JOptionPane;
Tipos de mensaje en JOptionPane
JOptionPane.showMessageDialog() nos permite mostrar un mensaje.
JOptionPane.showInputDialog() nos permite la entrada de datos (similar
al famoso Scanner de la consola).
JOptionPane.ConfirmDialog() nos permite hacer preguntas con varías
confirmaciones. Por ejemplo: Sí, No, Cancelar.
Elementos de un JOptionPane:
ParentComponent o ventana padre: que es el primer parámetro y
representa a la ventana padre. Por el momento la pondremos a null y nos
funcionará sin problema (null o component que puede ser un JFrame).
Message o mensaje: contiene el texto a mostrar (String).
Title o título: nos permite introducir un título a la ventana (String).
Icon o icono: nos permite introducir un icono a la ventana (Ejemplo
JOptionPane.INFORMATION_MESSAGE).
messageType: nos permite introducir un número (ver segunda imagen.
Escribimos un número. Por ejemplo: 0).
JOptionPane.showMessageDialog(null, "Mensaje con QUESTION_MESSAGE",
“Titulo del mensaje", JOptionPane.QUESTION_MESSAGE);
JOptionPane.showInputDialog(null, "Introduce un mensaje");
JOptionPane.showConfirmDialog(null, "¿Quieres salir del programa?", "Titulo
del mensaje", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE);
6.-Operadores en Java
6.1-Operadores Aritméticos
Los operadores aritméticos en Java son los operadores que nos permiten realizar
operaciones matemáticas: suma, resta, multiplicación, división y resto.
Los operadores aritméticos en Java son:
Operador Descripción
+ Operador de Suma. Concatena cadenas para la suma de
String
- Operador de Resta
* Operador de Multiplicación
/ Operador de División
% Operador de Resto
6.2-Operadores de asignación
Operación Operador Utilización Operación
equivalente
Suma += A += B A=A+B
Resta -= A -= B A=A-B
Multiplicación *= A *= B A=A*B
División /= A /= B A=A/B
Resto de división %= A %= B A=A%B
6.3-Operadores de incremento decremento
Operador Nombre Utilizacion Descripcion
++x Pre-incremento X=0; J=++x j=1 .Primero se incrementa
x++ Post-incremento X=0; J=x++ j=0 .Primero se usa la variable
--x Pre-decremento X=0; J=--x j=-1 .Primero se decrementa
x-- Post-decremento X=0; J=x-- j=0 .Primero uso la variable
6.4-Operadores lógicos
Los operadores lógicos de PHP se utilizan para combinar las sentencias condicionales.
Operador Nombre Ejemplo Resultado
&& And x && y True si ambas x y y son true
|| Or x || y True si x o y es true
! Not !x True si x es False
?: Operador mayor = (x> y)? x : Si es verdadero mayor=x caso
ternario y; contario mayor=y
!= Diferente x != y Es verdadero si es diferente
7.0- Sentencias Control en Java
Dentro de las sentencias de control de flujo tenemos las siguientes:
Sentencias de decisión
Sentencias de bucle
Sentencias de ramificación
Sentencias de Decisión
Son sentencias que nos permiten tomar una decisión para poder ejecutar un bloque
de sentencias u otro.
Las sentencias de decisión son: if-else y switch.
Mediante if-else podremos evaluar una decisión y elegir por un bloque u otro.
if (expresion) {
// Bloque si la condición es verdadera
} else {
// Bloque si la condición es falsa
}
Mientras que con switch podremos evaluar múltiples decisiones y ejecutar un bloque
asociado a cada una de ellas.
switch (expresion) {
case valor1:
bloque1;
break;
case valor2:
bloque2;
break;
case valor3:
bloque3;
break;
…
default:
bloque_por_defecto;
}
Sentencias de Bucle
Las sentencias de bucle nos van a permitir ejecutar un bloque de sentencias tantas
veces como queramos, o tantas veces como se cumpla una condición.
En el momento que se cumpla esta condición será cuando salgamos del bucle.
Las sentencias de bucle en Java son: while, do-while y for.
En el caso de la sentencia while tenemos un bucle que se ejecuta mientas se cumple
la condición, pero puede que no se llegue a ejecutar nunca, si no se cumple la
condición la primera vez.
while (expresion) {
bloque_sentencias;
}
Por otro lado, si utilizamos do-while, lo que vamos a conseguir es que el bloque de
sentencias se ejecute, al menos, una vez.
do {
bloque_sentencias;
} while (expresion)
La sentencia for nos permite escribir toda la estructura del bucle de una forma más
acotada. Si bien, su cometido es el mismo.
for (sentencias_inicio;expresion;incremento) {
bloque_sentencias;
}
Sentencias de ramificación
Las sentencias de ramificación son aquellas que nos permiten romper con la
ejecución lineal de un programa.
El programa se va ejecutando de forma lineal, sentencia a sentencia. Si queremos
romper esta linealidad tenemos las sentencias de ramificación.
Las sentencias de ramificación en Java son: break y continue.
En el caso de break nos sirve para salir de bloque de sentencias, mientras que
continue sirve para ir directamente al siguiente bloque.
7.1-Sentencia de control : if-then-else
La estructura de las sentencias if-else es:
if (expresion) {
// Bloque en verdadero
} else {
// Bloque en falso
}
Las sentencias if-else pueden estar anidadas y así nos encontraríamos con una
sentencia if-then-elseif, la cual tendría la siguiente estructura:
if (expresion) {
// Bloque en verdadero
} else if (expresion) {
// Bloque en falso
} else if (expresion) {
// Bloque en falso
} else if (expresion) {
// Bloque en falso
} ...
Ejercicio:
La normativa indica que debe obtenerse un total de 14 puntos entre la nota final del
primer y segundo Quimestre para aprobar. Si las notas son 11, 12, 13 debera rendir un
examen supletorio; y si obtiene una nota inferior no aprobará la asignatura. El promedio
para aprobar en cualquier caso es 7.
7.2-Sentencia de control : Switch
La sentencia switch evalúa una expresión y ejecutará el bloque de sentencias que
coincida con el valor de la expresión.
El valor de la expresión puede ser numerico o caracter
La estructura de la sentencia switch en evaluaciones simples:
switch (expresion) {
case valor1:
bloque1;
break;
case valor2:
bloque2;
break;
case valor3:
bloque3;
break;
...
default:
bloque_por_defecto;
}
Sentencia switch en evaluaciones múltiples. La estructura en este caso sería:
switch (expresion) {
case valor1: case valor2: case valor3:
bloque1;
break;
case valor4: case valor5: case valor6:
bloque2;
break;
...
default:
bloque_por_defecto;
}
7.3-Sentencia de control : Bucles
Las sentencias de bucle nos van a permitir ejecutar un bloque de sentencias tantas
veces como queramos, o tantas veces como se cumpla una condición.
Las sentencias de bucle son: while, do-while y for.
While
La estructura repetitiva while realiza una primera evaluación antes de ejecutar el
bloque. Si la expresión es true pasa a ejecutar de forma repetida el bloque de
sentencias.
La estructura de la sentencia while es la siguiente:
while (expresion) {
bloque_sentencias;
}
Por ejemplo podemos realizar un contador de 1 a 10 de la siguiente forma:
int contador = 1;
while (contador <= 10) {
System.out.println(contador);
contador++;
}
Do-while
En el caso de la estructura repetitiva do-while, primero se ejecuta el bloque de
sentencias y luego se evalua la expresión. Por lo tanto siempre se ejecutará, al menos
una vez, el bloque de sentencias.
La estructura de la sentencia do-while es:
do {
bloque_sentencias;
} while (expresión)
Por ejemplo repetir el ciclo si el dato es negativo:
do {
dato=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese un dato:"));
}while ( dato < 0);
For
La sentencia for tiene la característica de que tiene bien definido el inicio del bloque,
la evaluación de la expresión, el incremento de valor y el bloque de sentencias.
La estructura del bucle for es:
for (sentencias_inicio;expresion;incremento) {
bloque_sentencias;
}
Por ejemplo realizar un conteo del 1 al 10:
for (int x=1;x<=10;x++) {
JOptionPane.showMessageDialog(null,"Valor del contador: " + x);
}
8.-Métodos , funciones y
procedimientos en Java
Funciones:
Las funciones son un conjunto de líneas de código (instrucciones), encapsulados
en un bloque, usualmente reciben parámetros, cuyos valores utilizan para efectuar
operaciones y adicionalmente retornan un valor. Si no retornan un valor
simplemente no es funcion . En java las funciones usan el modificador static.
Métodos:
Los métodos y las funciones en Java están en capacidad de realizar las mismas
tareas.Básicamente un método es una función que pertenece a un objeto o clase,
mientras que una función existe por sí sola, sin necesidad de un objeto para ser
usada.
Procedimientos:
Los procedimientos son básicamente un conjunto de instrucciones que se ejecutan
sin retornar ningún valor
Crear un método/funcion en Java
La sintaxis para declarar una función es muy simple, veamos:
[acceso] [modificador] tipo nombreFuncion([tipo nombreArgumento,[tipo nombreArgumento].
..])
{
/*
* Bloque de instrucciones
*/
return valor;
}
El modificador de acceso, que puede ser public o private, éste es opcional, si
no ponemos nada
El modificador que puede ser final o static (o ambas), también es opcional.
El tipo puede ser entero (int), booleano (boolean), o cualquiera que
consideremos, inclusive tipos complejos.
nombreFunción, para poder identificarla y llamarla (invocarla) durante la
ejecución
Argumentos o parámetros de una funcion
Si una función tiene más de un parámetro cada uno de ellos debe ir
separado por una coma.
Los argumentos de una función también tienen un tipo y un nombre que los
identifica. El tipo del argumento puede ser cualquiera y no tiene relación con
el tipo del método/funcion.
En Java los parámetros que podemos recibir pueden ser por valor o por
referencia
Consejos acerca de return
Cualquier instrucción que se encuentre después de la ejecución de return NO
será ejecutada.
El tipo del valor que se retorna en una función debe coincidir con el del tipo
declarado a la función.
En el caso de los procedimientos (void) podemos usar la
sentencia return pero sin ningún tipo de valor, sólo la usaríamos como una
manera de terminar la ejecución del procedimiento.
Ejemplos de métodos
int metodoEntero()//Función sin parámetros
{
int suma = 5+5;
return suma; //Acá termina la ejecución del método
//return 5+5;//Este return nunca se ejecutará
//Intenta intercambiar la línea 3 con la 5
//int x = 10; //Esta línea nunca se ejecutará
}
public String metodoString(int n)//método con un parámetro
{
if(n == 0)//Usamos el parámetro en la función
{
return "a"; //Si n es cero retorna a
//Notar que de aquí para abajo no se ejecuta nada más
}
return "x";//Este return sólo se ejecuta cuando n NO es cero
}
static boolean metodoBoolean(boolean n, String mensaje)
//Esta si es una funcion pues usa “static” y posee dos parámetros
{
if(n)//Usamos el parámetro en la funcion
{
System.out.println(mensaje);//Mostramos el mensaje
}
return n; //Usamos el parámetro como valor a retornar
}
Los procedimientos son similares a las funciones, aunque más resumidos.
Debido a que los procedimientos no retornan valores, no hacen uso de la
sentencia return para devolver valores y no tienen tipo específico, sólo void.
Veamos un ejemplo:
void procedimiento(int n, String nombre) //La gran diferencia es el void
{
if(n > 0 && !nombre.equals(""))//usamos los dos parámetros
{
System.out.println("hola " + nombre);
return; //Si no ponemos este return se mostraría hola y luego adiós
}
//También podríamos usar un else en vez del return
System.out.println("adios");
}
Invocando funciones y procedimientos en Java
Cómo usar un método, función o procedimiento.
nombreFuncion([valor,[valor]...]);
Ejemplos de invocación de métodos
public class Ejemplos
{
public static void main(String args[])//Siempre necesitamos un main
{
Ejemplos ejemplo = new Ejemplos(); //Cuando no es estático, debe usarse un método
//Llamando a un método sin argumentos, usando el objeto
ejemplo.metodoEntero();
//Asignando el valor retornado a una variable
boolean respuesta = metodoBoolean(true, "hola");
// El procedimiento no es static, así que debe llamarse desde el objeto.
ejemplo.procedimiento(0, "Juan");//Invocando el procedimiento
//Usando una función como parámetro
ejemplo.procedimiento(metodoBoolean(1, "hola"), "Juan");
//Lo que retorne metodoBoolean (en este caso 1) se envía al procedimiento
}
}
9.0-Funciones Básicas con Cadenas
Entre las operaciones básicas que podemos realizar con las cadenas están las
siguientes:
Información básica de la cadena
Comparación de Cadenas
Búsqueda de caracteres
Búsqueda de subcadenas
Manejo de subcadenas
Manejo de caracteres
Conversión a String: valueOf()
Información básica de la cadena
.length() Nos devuelve el tamaño que tiene la cadena.
.charAt(int index) Devuelve un carácter indicado como índice tipo “char”. El
primer carácter de la cadena será el del índice 0. Si no existe un índice nos
devolverá una excepción IndexOutOfBoundsException.
Comparación de Cadenas
Los métodos de comparación nos sirven para comparar si dos cadenas de texto
son iguales o no. Dentro de los métodos de comparación tenemos los siguientes:
.equals(Object un_Objeto ) Nos permite comparar si dos cadenas de texto
son iguales. En el caso de que sean iguales devolverá como valor “true”. En caso
contrario devolverá “false”.
.toUpperCase(String cadena) convierte las cadenas a mayúsculas
.toLowerCase(String cadena) convierte las cadenas a minusculas
.equalsIgnoreCase(String cadena) Compara dos cadenas de caracteres
omitiendo si los caracteres están en mayúsculas o en minúsculas.
Búsqueda de caracteres
Tenemos un conjunto de métodos que nos permiten buscar caracteres dentro de
cadenas de texto. Todas estas funciones nos devuelven un entero:
.indexOf(int ch) Nos devuelve la posición de un carácter dentro de la cadena de
texto. En el caso de que el carácter buscado no exista nos devolverá un -1. Si lo
encuentra nos devuelve un número entero con la posición que ocupa en la cadena.
.indexOf(int ch, int desdeIndice) Realiza la misma operación que el anterior
método, pero en vez de hacerlo a lo largo de toda la cadena lo hace desde el
índice (desdeIndice) que le indiquemos.
.lastIndexOf(int ch) Nos indica cual es la última posición que ocupa un carácter
dentro de una cadena. Si el carácter no está en la cadena devuelve un -1.
.lastIndexOf(int ch, int desdeIndice) Nos indica cual es la última posición que
ocupa un carácter dentro de una cadena, pero a partir de una posición indicada
como argumento.
Búsqueda de subcadenas
Nos permiten buscar cadenas dentro de cadenas, así como saber la posición donde
se encuentran en la cadena origen para poder acceder a la subcadena. Todas
estas funciones nos devuelven un entero:
.indexOf(String str) Busca una cadena dentro de la cadena origen. Devuelve un
entero con el índice a partir del cual está la cadena localizada. Si no encuentra la
cadena devuelve un entero -1.
.indexOf(String str, int desdeIndice) Misma funcionalidad que indexOf(String
str), pero a partir de un índice indicado como argumento del método.
.lastIndexOf(String str) Si la cadena que buscamos se repite varias veces en la
cadena origen podemos utilizar este método que nos indicará el índice donde
empieza la última repetición de la cadena buscada.
.lastIndexOf(String str, int desdeIndice) Lo mismo que el anterior, pero a
partir de un índice pasado como argumento.
Métodos con subcadenas
Ahora que sabemos como localizar una cadena dentro de otra seguro que nos
acucia la necesidad de saber como substraerla de donde está. Si es que no nos
podemos estar quietos…
substring(int inicioIndice) Este método nos devolverá la cadena que se
encuentra entre el índice pasado como argumento (inicioIndice) hasta el final de
la cadena origen. Así, si tenemos la siguiente cadena:
String s = "Víctor Cuervo";
El método…
s.substring(7);
Nos devolverá “Cuervo”.
substring(int inicioIndice, int finIndice) Si se da el caso que la cadena que
queramos recuperar no llega hasta el final de la cadena origen, que será lo
normal, podemos utilizar este método indicando el índice inicial y final del cual
queremos obtener la cadena. Así, si partimos de la cadena…
String s = "En un lugar de la mancha....";
El método…
s.substring(6,11);
Nos devolverá la palabra “lugar”.
Manejo de caracteres
Otro conjunto de métodos que nos permite jugar con los caracteres de la cadena
de texto. Para ponerles en mayúsculas, minúsculas, quitarles los espacios en
blanco, reemplazar caracteres,….
.toLowerCase(); Convierte todos los caracteres en minúsculas.
.toUpperCase(); Convierte todos los caracteres a mayúsculas.
.trim(); Elimina los espacios en blanco de la cadena.
.replace(char AntiguoCarcater, char NuevoCaracter) Este método lo
utilizaremos cuando lo que queramos hacer sea el remplazar un carácter por otro.
Se reemplazarán todos los caracteres encontrados.
Conversión a String: valueOf()
Un potente conjunto de métodos de la clase String nos permite convertir a
cadena cualquier tipo de dato básico: int, float, double,… Esto es especialmente
útil cuando hablamos de números. Ya que en múltiples ocasiones querremos
mostrarles como cadenas de texto y no en su representación normal de número.
Así podemos utilizar los siguientes métodos:
String.valueOf(boolean b);
String.valueOf(int i);
String.valueOf(long l);
String.valueOf(float f);
String.valueOf(double d);
String.valueOf(Object objeto);
10.0.-Arrays Java
Un array en Java es una estructura de datos que nos permite almacenar una lista
de informacion de un mismo tipo. El tamaño de los arrays se declara en un primer
momento y no puede cambiar en tiempo de ejecución como puede producirse en
otros lenguajes. La declaración de un array en Java y su inicialización se realiza de
la siguiente manera:
tipo_dato nombre_array[];
nombre_array = new tipo_dato[dimension];
Por ejemplo, podríamos declarar un array de caracteres e inicializarlo de la
siguiente manera:
char arregloCaracteres[];
arregloCaracteres = new char[10];
Los arrays Java se numeran desde el elemento cero, que sería el primer elemento,
hasta dimension-1 que sería el último elemento. Es decir, si tenemos un array de
diez elementos, el primer elemento sería el cero y el último elemento sería el
nueve. Para acceder a un elemento especifico utilizaremos los corchetes de la
siguiente forma. Entendemos por acceso, tanto el intentar leer el elemento, como
asignarle un valor.
arregloCaracteres[numero_elemento]
Por ejemplo, para acceder al tercer elemento lo haríamos de la siguiente forma:
// Lectura de su valor.
char x = arregloCaracteres[2];
// Asignación de un valor. Como se puede comprobar se pone el número dos, que
coincide con el tercer elemento. Ya que como dijimos anteriormente el primer
elemento es el cero.
arregloCaracteres[2] = 'b';
Tamaño del array: .length
Este atributo nos devuelve el número de elementos que posee el array.
char arreglo[];
arreglo = new char[10];
for (int x=0;x<arreglo.length;x++)
System.out.printnln(array[x]);
Matrices o Arrays de varios subindices
Podremos declarar arrays Java de varios subíndices, pudiendo tener arrays Java
de dos niveles, que serían similares a las matrices.
tipo_dato nombre_array[][];
nombre_array = new tipo_dato[dimension1][dimension2];
De esta forma podemos declarar una matriz Java de 2x2 de la siguiente forma:
int matriz[][];
matriz = new int[2][2];
El acceso se realiza de la misma forma que antes:
int x = matriz[1][1]; // Para leer el contenido de un elemento
matriz[1][1] = x; // Para asignar un valor.
Hay que tener en cuenta que para mostrar su contenido tendremos que utilizar
dos bucles. Para saber el número de columnas lo haremos igual que antes
mediante la variable .length, pero para saber el numero de filas que contiene cada
columna lo tendremos que realizar de la siguiente manera:
matriz[numero_elemento].lenght;
Nuestra lectura de los elementos de una matriz quedaría de la siguiente forma:
int matriz[][];
matriz = new int[4][4];
for (int x=0; x < matrix.length; x++) {
for (int y=0; y < matriz[x].length; y++) {
System.out.println (matriz[x][y]);
}
}
Incialización de Arrays en Java
Para inicializar un array Java utilizaremos las llaves de la siguiente forma:
tipo_dato arreglo[] = {elemento1,elemento2,...,elementoN};
Así, por ejemplo, podríamos inicializar un array Java o una matriz Java:
// Tenemos un array de 5 elementos.
char array[] = {'a','b','c','d','e'};
// Tenemos un array de 4x4 elementos.
int array[][] = { {1,2,3,4}, {5,6,7,8}};
11.0.-List en Java
Las listas en Java son variables que permiten almacenar grandes cantidades de
datos. Son similares a los Array o a las Matrices. Las listas son sumamente
versátiles y mucho más fáciles de manejar que otros tipos de variables de
agrupación de datos.
List<Tipo_dato> nombre_Lista = new ArrayList<Tipo_dato>();
Entonces para declarar una lista donde guardaremos datos tipo String, hacemos
lo siguiente:
List<String> ejemploLista = new ArrayList<String>();
Agregar un elemento a una lista:
Supongamos que queremos agregar los siguientes nombres: Juan, Pedro, José,
María, Sofía.
Hacemos lo siguiente:
ejemploLista.add("Juan");
ejemploLista.add("Pedro");
ejemploLista.add("José");
ejemploLista.add("María");
ejemploLista.add("Sofía");
Obtener el numero de elementos de una lista:
ejemploLista.size();
Consultar los elementos de una lista:
ejemploLista.get(0);
Donde 0 es el índice en el que se encuentra la información que queremos. En este
caso, el índice 0 vendría siendo Juan.
Eliminar los elementos de una lista:
ejemploLista.remove(0);
Donde nuevamente el 0 representa el índice que queremos eliminar. Otra forma
de eliminar un registro es por su nombre:
ejemploLista.remove("Juan");
Mostrar los elementos de una lista:
System.out.println(ejemploLista);
También podemos imprimir todos los elementos de la lista de forma individual con
la ayuda de un ciclo for.
for (int i = 0; i <= ejemploLista.size() - 1; i++) {
System.out.println(ejemploLista.get(i));
}
Para eliminar todos los elementos de la lista usamos:
ejemploLista.clear();
Si deseamos saber si nuestra lista contiene algún elemento utilizamos:
ejemploLista.isEmpty();
Esto nos devolverá un true o un false. En caso de que contenga algún elemento
podemos verificar si entre esos elementos tenemos alguno en específico. Por
ejemplo si queremos saber si en nuestra lista está escrito el nombre de José,
utilizamos:
ejemploLista.contains("José");
Esto también nos devolverá un true o un false.
Modificar algún dato de nuestra lista
por ejemplo el índice 1 que contiene el nombre de Pedro, utilizamos el siguiente
método:
ejemploLista.set(1, "Félix");
Habremos cambiado el nombre en el índice 1 (Pedro) por el nuevo nombre (Félix).
Extraer una lista que contenga los nombres entre un índice y otro podemos
utilizar:
ejemploLista.subList(0, 2)
habremos creado una sublista que contendrá los elementos con índice 0,1,2 :
System.out.println(ejemploLista.subList(0,2));
int numEntero = 4;
String numCadena= String.valueOf(numEntero);