Temario del curso: Lenguaje de programación Java
1. Introducción
2. Aspectos básicos del lenguaje
3. Entrada y Salida de datos por consola
4. Arrays
5. Algoritmos de ordenación
6. El paquete java.lang
7. Programación Orientada a Objetos
8. Excepciones
9. Streams
10. Acceso a Bases de Datos Relacionales
Miscelánea
soy chamit
ResponderEliminargracias enrique
Muchas gracias !
ResponderEliminarMuchísimas gracias!
ResponderEliminarMuchisisisimas gracias , estudio programacion y tus aportes me ayudaron bastante :D
ResponderEliminarMe alegro de que os sirva de ayuda. Gracias por seguir el blog
ResponderEliminarenrique quisiera ver si me podrías ayudar con ejemplo de como utilizar el parseint ya que debo de aplicarlo a un proyecto de la Uni!! gracias de antemano por tu ayuda con este gran tuto
ResponderEliminarClaro. En Java, Integer.parseInt() se utiliza para convertir un texto (String) en un número entero (int).
EliminarSintaxis
int numero = Integer.parseInt(cadena);
Donde cadena debe contener únicamente dígitos válidos.
Ejemplo básico
public class EjemploParseInt {
public static void main(String[] args) {
String texto = "25";
int numero = Integer.parseInt(texto);
System.out.println(numero + 10);
}
}
Salida:
35
Sin parseInt, "25" sería texto y no podrías realizar operaciones matemáticas correctamente.
Ejemplo con JOptionPane
Este es uno de los usos más comunes en proyectos universitarios:
import javax.swing.JOptionPane;
public class Ejemplo {
public static void main(String[] args) {
String dato = JOptionPane.showInputDialog("Ingrese su edad:");
int edad = Integer.parseInt(dato);
JOptionPane.showMessageDialog(null,
"El próximo año tendrás " + (edad + 1));
}
}
Ejemplo para sumar dos números
import javax.swing.JOptionPane;
public class Suma {
public static void main(String[] args) {
int num1 = Integer.parseInt(
JOptionPane.showInputDialog("Ingrese el primer número"));
int num2 = Integer.parseInt(
JOptionPane.showInputDialog("Ingrese el segundo número"));
int suma = num1 + num2;
JOptionPane.showMessageDialog(null,
"La suma es: " + suma);
}
}
Error común
Si el usuario escribe letras:
String dato = "hola";
int numero = Integer.parseInt(dato);
Se producirá una excepción:
NumberFormatException
Porque "hola" no puede convertirse a entero.
Diferencia con otros métodos
int entero = Integer.parseInt("10");
double decimal = Double.parseDouble("10.5");
float flotante = Float.parseFloat("10.5");
long largo = Long.parseLong("100000");
Resumen
Método Convierte a
Integer.parseInt() int
Double.parseDouble() double
Float.parseFloat() float
Long.parseLong() long
Si me muestras la parte de tu proyecto donde necesitas usar parseInt(), puedo indicarte exactamente cómo aplicarlo.
Hola gracias por el Blog me esta sirviendo de mucho en el curso de Java
ResponderEliminarExcelente Blog!, algún correo donde pueda ubicarte? Saludos
ResponderEliminarmuy buen trabajo muy explicativo gracias.
ResponderEliminarMuchas gracias inmensamente agradecido por tu aporte, estoy estudiando Desarrollador en Java en frances, porque vivo en paris, el curso que llevo es a distancia, y puedo decirte que me he animado bastante con tu blog, ya que a pesar de que no estoy sacando malas notas, a veces y es muchas las veces que me atraso y me rompo la cabez demasiado que hasta me desanimo y es que donde estoy metido tienen una metodologia para ensenar no muy buena creo porque hay cosas que no explican bien como debria ser y he tenido que recurrir a la web casi todo el tiempo
ResponderEliminarpor casualidad recurriendo a la web buscando informacion sobre metodos en java tope con tu blog y creo que ahora si tengo ganas de seguir estudiando porque puedo llevar tus conocimientos y los que me dan por la escuela de la mano como muleta y super ayuda asi vuelvo a ser feliz, recibe un abrazo fuerte, que dios te bendiga y que sigan habiendo personas como tu en este mundo dispuestas a compartir el conocimiento.
Muy buen post, muy interesante y muy útil la información, se valora mucho los aportes y el tiempo dedicado para realizar los mismos! Pulgar arriba ! Te esperamos por nuestro blog !
ResponderEliminarMuchísimas gracias!!! Me ha servido y ayudado mucho tu blog!! Así da gusto programar :)
ResponderEliminarUn besito de una futura ingeniera informática :D
¡AYUDA! necesito agregar un contador a este programa, tengo que hacer que al presionar "0" me imprima el total de ventas realizadas en el dia.
ResponderEliminarGracias de antemano por el apoyo soy nuevo en esto de programar.
enviar correo con la solucion plis gracias de nuevo
E-mail marbynmidence@gmail.com
package javaapplication10;
import java.util.Scanner;
/**
*
* @author marbyn
*/
public class JavaApplication10 {
@SuppressWarnings("empty-statement")
static int menu(){
int opcion;
System.out.println(" MENU");
System.out.println("Escriba 1 para Ingresar articulo");
Scanner leer=new Scanner(System.in);
System.out.println("Escriba 0 para salir ");
opcion = leer.nextInt();
return opcion;
}
static void ImprimirVenta(){
Scanner leer=new Scanner (System.in);
String nombre;
System.out.println("ingrese un articulo:");
nombre=leer.next();
System.out.println("ingrese el precio:");
double precio=leer.nextInt();
System.out.println("cuantos de este producto desea:");
double cantidad=leer.nextInt();
double Subtotal=precio*cantidad;
int isv;
isv=15;
double impuesto=Subtotal*isv/100;
double venta=Subtotal+impuesto;
System.out.println("sub total:"+Subtotal );
System.out.println("el impuesto es:" + impuesto);
System.out.println("el total es:" + venta);
}// fin imprimir venta
public static void main(String[] args) {
int centinela=0;
int accion;
do{
accion=menu();
//ejecutar las opciones
if( accion==1 ){
ImprimirVenta();
}
}while(accion!=centinela);
}
}
Si lo que necesitas es contar cuántas ventas se realizaron y que al presionar 0 se muestre el total, agrega una variable contador en main e incrementa cada vez que se ejecuta una venta.
EliminarPor ejemplo:
public static void main(String[] args) {
int centinela = 0;
int accion;
int totalVentas = 0; // contador
do {
accion = menu();
if (accion == 1) {
ImprimirVenta();
totalVentas++; // aumenta en 1 cada venta
}
} while (accion != centinela);
System.out.println("Total de ventas realizadas en el día: " + totalVentas);
}
Ejemplo de uso
MENU
1. Ingresar artículo
0. Salir
> 1
(se realiza una venta)
> 1
(se realiza otra venta)
> 0
Total de ventas realizadas en el día: 2
Extra: contar el monto total vendido
Si además te piden mostrar el dinero total vendido durante el día, conviene que ImprimirVenta() retorne el valor de la venta:
static double ImprimirVenta() {
...
double venta = Subtotal + impuesto;
System.out.println("Total: " + venta);
return venta;
}
Y en main:
double totalDia = 0;
if (accion == 1) {
totalDia += ImprimirVenta();
totalVentas++;
}
...
System.out.println("Ventas realizadas: " + totalVentas);
System.out.println("Monto total vendido: " + totalDia);
Por cierto, en tu código podrías cambiar:
double precio = leer.nextInt();
double cantidad = leer.nextInt();
por
double precio = leer.nextDouble();
double cantidad = leer.nextDouble();
para permitir precios y cantidades con decimales.
Gracias me ayudo mucho este blog me haz salvado estoy agradecido
ResponderEliminarSALUDOS AL GRUPO 3°ACV DE PROGRAMACIÓN
ResponderEliminarHola me podría ayudar con este enunciado por favor gracias.
ResponderEliminarEn un colegio secundario, se tiene una lista general de todos los alumnos en la cual figuran, para cada alumno los siguientes datos:
• número de legajo
• nombre
• curso (1 al 5)
• promedio anual
• una variable que indica sexo (1: varón, 2: mujer)
Se desea un programa que cargue esos datos alumno por alumno (cortando cuando el legajo sea 0 [cero]), y determine:
1- Cantidad de varones y cantidad de mujeres con promedio individual menor a cuatro en el colegio.
2- Cantidad total de alumnos cuyo promedio anual sea menor a cuatro.
3- Promedio general entre todos los alumnos del colegio (suma de todos los promedios individuales, dividida por el total general de alumnos).
4- Si el promedio individual del alumno ingresado, es mayor que 9.50, emitir un mensaje indicando que debe darse a ese alumno una mención especial.
5- Nombre y legajo del alumno con menor promedio individual en quinto año del colegio.
tienes que crear una app que diga .estudialoqueestaarriba.JAVA y otra que diga .lapracticahacealmaestro.JAVA
EliminarTe ayudo.
EliminarJava.
Claro. Este ejercicio se resuelve utilizando un ciclo mientras (while), acumuladores, contadores y una búsqueda del mínimo promedio en quinto año.
Lógica del programa
Mientras el legajo sea distinto de 0:
Leer los datos del alumno.
Si el promedio es menor a 4:
Incrementar el contador total de desaprobados.
Incrementar varones o mujeres según corresponda.
Acumular los promedios para calcular el promedio general.
Si el promedio es mayor a 9.50, mostrar la mención especial.
Si es de quinto año, comparar su promedio con el menor encontrado hasta el momento.
Java.
EliminarCódigo en Java
import java.util.Scanner;
public class Colegio {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int legajo;
String nombre;
int curso;
double promedio;
int sexo;
int cantVaronesMenor4 = 0;
int cantMujeresMenor4 = 0;
int totalMenor4 = 0;
int totalAlumnos = 0;
double sumaPromedios = 0;
double menorPromedio5 = 11; // mayor que cualquier promedio posible
String nombreMenor5 = "";
int legajoMenor5 = 0;
System.out.print("Ingrese legajo (0 para finalizar): ");
legajo = sc.nextInt();
while (legajo != 0) {
sc.nextLine(); // limpiar buffer
System.out.print("Nombre: ");
nombre = sc.nextLine();
System.out.print("Curso (1 a 5): ");
curso = sc.nextInt();
System.out.print("Promedio anual: ");
promedio = sc.nextDouble();
System.out.print("Sexo (1=Varón, 2=Mujer): ");
sexo = sc.nextInt();
totalAlumnos++;
sumaPromedios += promedio;
// Punto 1 y 2
if (promedio < 4) {
totalMenor4++;
if (sexo == 1) {
cantVaronesMenor4++;
} else if (sexo == 2) {
cantMujeresMenor4++;
}
}
// Punto 4
if (promedio > 9.50) {
System.out.println("** Mención especial para " + nombre + " **");
}
// Punto 5
if (curso == 5) {
if (promedio < menorPromedio5) {
menorPromedio5 = promedio;
nombreMenor5 = nombre;
legajoMenor5 = legajo;
}
}
System.out.print("\nIngrese legajo (0 para finalizar): ");
legajo = sc.nextInt();
}
// Punto 3
double promedioGeneral = 0;
if (totalAlumnos > 0) {
promedioGeneral = sumaPromedios / totalAlumnos;
}
System.out.println("\n===== RESULTADOS =====");
System.out.println("Varones con promedio menor a 4: " + cantVaronesMenor4);
System.out.println("Mujeres con promedio menor a 4: " + cantMujeresMenor4);
System.out.println("Total de alumnos con promedio menor a 4: " + totalMenor4);
System.out.println("Promedio general del colegio: " + promedioGeneral);
if (legajoMenor5 != 0) {
System.out.println("\nAlumno con menor promedio en 5° año:");
System.out.println("Legajo: " + legajoMenor5);
System.out.println("Nombre: " + nombreMenor5);
System.out.println("Promedio: " + menorPromedio5);
} else {
System.out.println("\nNo se ingresaron alumnos de 5° año.");
}
sc.close();
}
}
Variables importantes para el examen
Variable Función
cantVaronesMenor4 Cuenta varones con promedio menor a 4
cantMujeresMenor4 Cuenta mujeres con promedio menor a 4
totalMenor4 Total de desaprobados
sumaPromedios Acumula todos los promedios
totalAlumnos Cuenta todos los alumnos
menorPromedio5 Guarda el menor promedio de quinto año
nombreMenor5 Guarda el nombre del alumno con menor promedio
legajoMenor5 Guarda el legajo del alumno con menor promedio
Este tipo de ejercicio suele tomarse en parciales porque combina corte de control (legajo = 0), contadores, acumuladores, promedios y búsqueda de mínimo.
hola me gusta mucho tu blog aunque no encontre todo lo que buscaba espero escribas algo acerca de estructura de datos como pilas, colas, listas enlazadas, arboles etc.
ResponderEliminarYo te puedo ayudarte.
EliminarLas estructuras de datos son formas de organizar y almacenar información para que pueda ser utilizada eficientemente. En Java existen implementaciones ya incluidas en las colecciones, aunque también es importante entender cómo funcionan internamente.
1. Pilas (Stack)
Una pila sigue el principio LIFO (Last In, First Out): el último elemento en entrar es el primero en salir.
Operaciones principales
push(): insertar.
pop(): eliminar el elemento superior.
peek(): consultar el elemento superior.
Ejemplo en Java
import java.util.Stack;
public class EjemploPila {
public static void main(String[] args) {
Stack pila = new Stack<>();
pila.push("A");
pila.push("B");
pila.push("C");
System.out.println("Pila: " + pila);
System.out.println("Tope: " + pila.peek());
System.out.println("Eliminado: " + pila.pop());
System.out.println("Pila actual: " + pila);
}
}
Resultado
Pila: [A, B, C]
Tope: C
Eliminado: C
Pila actual: [A, B]
Aplicaciones
Historial de navegación.
Deshacer/Rehacer.
Evaluación de expresiones matemáticas.
2. Colas (Queue)
Una cola sigue el principio FIFO (First In, First Out): el primero en entrar es el primero en salir.
Operaciones principales
offer(): insertar.
poll(): eliminar el primero.
peek(): consultar el primero.
Ejemplo en Java
import java.util.LinkedList;
import java.util.Queue;
public class EjemploCola {
public static void main(String[] args) {
Queue cola = new LinkedList<>();
cola.offer("Juan");
cola.offer("Ana");
cola.offer("Luis");
System.out.println("Cola: " + cola);
System.out.println("Atendiendo: " + cola.poll());
System.out.println("Cola actual: " + cola);
}
}
Resultado
Cola: [Juan, Ana, Luis]
Atendiendo: Juan
Cola actual: [Ana, Luis]
Aplicaciones
Sistemas de turnos.
Impresoras.
Gestión de tareas.
3. Listas Enlazadas (Linked List)
EliminarUna lista enlazada está formada por nodos. Cada nodo contiene:
Un dato.
Una referencia al siguiente nodo.
Representación
10 → 20 → 30 → null
Ejemplo usando LinkedList
import java.util.LinkedList;
public class EjemploLista {
public static void main(String[] args) {
LinkedList lista = new LinkedList<>();
lista.add("Java");
lista.add("Python");
lista.add("C#");
System.out.println(lista);
lista.remove("Python");
System.out.println(lista);
}
}
Resultado
[Java, Python, C#]
[Java, C#]
Ventajas
Inserciones y eliminaciones rápidas.
Tamaño dinámico.
Desventajas
Acceso más lento que un arreglo.
4. Árboles (Trees)
Un árbol es una estructura jerárquica compuesta por nodos.
Ejemplo de árbol binario
50
/ \
30 70
/ \ / \
20 40 60 80
Conceptos básicos
Raíz: primer nodo.
Padre: nodo superior.
Hijo: nodo dependiente.
Hoja: nodo sin hijos.
Implementación simple
class Nodo {
int dato;
Nodo izquierda;
Nodo derecha;
public Nodo(int dato) {
this.dato = dato;
}
}
public class ArbolBinario {
public static void main(String[] args) {
Nodo raiz = new Nodo(50);
raiz.izquierda = new Nodo(30);
raiz.derecha = new Nodo(70);
raiz.izquierda.izquierda = new Nodo(20);
raiz.izquierda.derecha = new Nodo(40);
System.out.println("Raíz: " + raiz.dato);
System.out.println("Hijo izquierdo: " + raiz.izquierda.dato);
System.out.println("Hijo derecho: " + raiz.derecha.dato);
}
}
Aplicaciones
Bases de datos.
Sistemas de archivos.
Motores de búsqueda.
Índices.
Comparación rápida
Estructura Principio Inserción Eliminación Uso común
Pila LIFO Tope Tope Deshacer, historial
Cola FIFO Final Inicio Turnos, impresoras
Lista Enlazada Secuencial Flexible Flexible Colecciones dinámicas
Árbol Jerárquico Según estructura Según estructura Búsquedas e índices
Ejemplo para recordar
Imagina una universidad:
Pila: una pila de exámenes; el último colocado es el primero que se revisa.
Cola: estudiantes esperando atención; el primero en llegar es el primero en ser atendido.
Lista enlazada: una cadena de estudiantes donde cada uno conoce al siguiente.
Árbol: organigrama de la universidad (Rector → Facultades → Escuelas → Estudiantes).
Estos son los conceptos fundamentales que normalmente se estudian en el tema de Estructuras de Datos en Java.
Ayuda alguien me podría decir como creo intervalos en java
ResponderEliminarEn Java, los intervalos normalmente se trabajan con operadores relacionales (>=, <=, >, <) dentro de una condición if.
EliminarEjemplo 1: Verificar si un número está entre 10 y 20
int numero = 15;
if (numero >= 10 && numero <= 20) {
System.out.println("Está dentro del intervalo");
} else {
System.out.println("Está fuera del intervalo");
}
Ejemplo 2: Clasificar por intervalos
int nota = 75;
if (nota >= 0 && nota <= 59) {
System.out.println("Desaprobado");
} else if (nota >= 60 && nota <= 79) {
System.out.println("Regular");
} else if (nota >= 80 && nota <= 100) {
System.out.println("Aprobado");
}
Ejemplo 3: Con datos ingresados por el usuario
import java.util.Scanner;
public class Intervalo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un número: ");
int n = sc.nextInt();
if (n >= 1 && n <= 100) {
System.out.println("El número está entre 1 y 100");
} else {
System.out.println("El número está fuera del intervalo");
}
sc.close();
}
}
Operadores más usados
Operador Significado
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
&& Y (ambas condiciones deben cumplirse)
`
Espero haberte ayudado.
Me encanta el blog, aver s podrías un día hacer un tutorial de servlets!
ResponderEliminarMuy buen blog explica todo muy bien, paso a paso y dice lo necesario.
ResponderEliminaresta bien culera su pagina xde
ResponderEliminarAyuda por favor necesito realizar programa en java dado tres números determinar si la suma de cualquier pareja de ellos es igual al tercer número si cumple la condición escribir iguales caso contrario escribir distintas
ResponderEliminarTe ayudo.
EliminarClaro. El problema consiste en leer tres números y verificar si la suma de cualquier pareja es igual al tercer número:
Si a + b = c, escribir "Iguales".
Si a + c = b, escribir "Iguales".
Si b + c = a, escribir "Iguales".
En cualquier otro caso, escribir "Distintas".
Código en Java
import java.util.Scanner;
public class SumaParejas {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el primer número: ");
int a = sc.nextInt();
System.out.print("Ingrese el segundo número: ");
int b = sc.nextInt();
System.out.print("Ingrese el tercer número: ");
int c = sc.nextInt();
if ((a + b == c) || (a + c == b) || (b + c == a)) {
System.out.println("Iguales");
} else {
System.out.println("Distintas");
}
sc.close();
}
}
Ejemplos
Entrada:
2
3
5
Salida:
Iguales
Porque 2 + 3 = 5.
Entrada:
4
7
10
Salida:
Distintas
Porque ninguna suma de dos números es igual al tercero.
Versión usando JOptionPane (NetBeans)
import javax.swing.JOptionPane;
public class SumaParejas {
public static void main(String[] args) {
int a = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el primer número"));
int b = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el segundo número"));
int c = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el tercer número"));
if ((a + b == c) || (a + c == b) || (b + c == a)) {
JOptionPane.showMessageDialog(null, "Iguales");
} else {
JOptionPane.showMessageDialog(null, "Distintas");
}
}
}
Esta última versión suele ser la que piden cuando trabajan con interfaces básicas en NetBeans.
hola disculpa necesito realizar un programa en java y netbeans, donde muestre una lista de prodctos, sumar los precios, y filtrar por contenido los que lleven la letra A, y sumar el precio mayor del que tenga la letra A.
ResponderEliminarHola, yo te ayudo.
EliminarJava:
Puedes hacerlo usando un arreglo de productos y otro de precios. El programa:
Muestra la lista de productos.
Suma el precio de todos los productos.
Filtra los productos que contienen la letra A (mayúscula o minúscula).
Encuentra el producto con letra A que tiene el precio más alto.
public class Productos {
public static void main(String[] args) {
String[] productos = {
"Arroz", "Leche", "Azucar", "Pan", "Galletas", "Cafe"
};
double[] precios = {
4.50, 3.80, 5.20, 1.00, 2.50, 8.00
};
double sumaTotal = 0;
double precioMayorA = 0;
String productoMayorA = "";
System.out.println("LISTA DE PRODUCTOS");
System.out.println("------------------");
for (int i = 0; i < productos.length; i++) {
System.out.println(productos[i] + " - S/ " + precios[i]);
// Sumar todos los precios
sumaTotal += precios[i];
// Verificar si contiene la letra A
if (productos[i].toUpperCase().contains("A")) {
if (precios[i] > precioMayorA) {
precioMayorA = precios[i];
productoMayorA = productos[i];
}
}
}
System.out.println("\nSuma total de precios: S/ " + sumaTotal);
System.out.println("\nProductos con letra A:");
for (int i = 0; i < productos.length; i++) {
if (productos[i].toUpperCase().contains("A")) {
System.out.println(productos[i] + " - S/ " + precios[i]);
}
}
System.out.println("\nProducto con letra A de mayor precio:");
System.out.println(productoMayorA + " - S/ " + precioMayorA);
}
}
Resultado esperado
LISTA DE PRODUCTOS
------------------
Arroz - S/ 4.5
Leche - S/ 3.8
Azucar - S/ 5.2
Pan - S/ 1.0
Galletas - S/ 2.5
Cafe - S/ 8.0
Suma total de precios: S/ 25.0
Productos con letra A:
Arroz - S/ 4.5
Azucar - S/ 5.2
Pan - S/ 1.0
Galletas - S/ 2.5
Cafe - S/ 8.0
Producto con letra A de mayor precio:
Cafe - S/ 8.0
Si tu profesor te pide usar ArrayList, POO (clase Producto) o ingresar los productos por teclado en NetBeans, puedo mostrarte esa versión también.
Examen de los 30 amigos
ResponderEliminarimport java.io.*;
import java.util.regex.*;
import java.util.*;
public class Examen3 {
public boolean getShortest (String readFile, String writeFile){
boolean done = false;
String res = "";
try{
Scanner input = new Scanner (new BufferedReader(new FileReader(readFile)));
PrintStream output = new PrintStream (writeFile);
Pattern p = Pattern.compile ("\\b\\w+\\b");
while (input.hasNextLine()){
Matcher m = p.matcher (input.nextLine());
if(m.find()){
res = m.group();
}else {
res = "";
}
while (m.find()){
if (m.group().length()<=res.length()){
res = m.group();
}
}
output.println(res);
}
input.close();
output.close();
done = true;
}catch (FileNotFoundException e){
done = false;
}
return done;
}
}
Examen leer fichero
ResponderEliminarimport java.io.*;
import java.util.*;
import java.util.regex.*;
/**
*
* NOTA: Importar librerías necesarias.
*/
public class Examen2 {
/**
* Leer de un fichero y obtener las palabras de longitud par y guardarlas en otro fichero.
*/
private boolean method(String m){
if(m.length() % 2 == 0){
return true;
}else{
return false;
}
}
public boolean getEvenWords(String readFile , String writeFile){
boolean done = false;
try{
Scanner input = new Scanner(new BufferedReader(new FileReader(readFile)));
PrintStream output = new PrintStream(writeFile);
String [] parts = writeFile.split("-");
while(input.hasNextLine()){
String line = input.nextLine();
String [] word = line.split(" ");
String res = "";
for(String m : word){
if(method (m) == true){
res += m + " ";
}
}
output.println(res.trim());
}
input.close();
output.close();
done = true;
} catch(Exception e){
done = false;
}
return done;
}
}
import java.io.*;
ResponderEliminarimport java.util.*;
import java.util.regex.*;
/**
*/
public class Examen1 {
/**
* Leer de un fichero que contiene "Nombre apellido1 apellido2" los apellidos2
* que empiecen en mayúscula y guardalos en otro fichero. El nombre del fichero
* se pasa por parámetro, devolverá true si se pudo ejecutar todo sin problemas,
* o false en caso contrario.
*/
public boolean getApellidos2(String readFile, String writeFile) {
boolean done = false;
try {
Scanner input = new Scanner(new BufferedReader(new FileReader(readFile)));
PrintStream output = new PrintStream(writeFile);
Pattern p = Pattern.compile("\\b\\w+\\s+\\w+\\s+([A-Z]\\w+)\\b");
while (input.hasNextLine()) {
Matcher m = p.matcher(input.nextLine());
if (m.find()) {
output.println(m.group(1));
}
}
input.close();
output.close();
done = true;
} catch (FileNotFoundException e) {
done = false;
}
return done;
}
}
Gracias Por compartir este curso.
ResponderEliminarInteresante curso.Muy buena información.Me gusta como esta ordenado el blog, con sus ejercicios y también la parte de POO que luego es complicado de entender. Gracias.Saludos.
ResponderEliminarMuy bueno todo saludos de cuba 🇨🇺
ResponderEliminarGracias Roberto. Saludos para Cuba.
EliminarPor favor, pueden ayudarme con este problema
ResponderEliminarIngrese el nombre de un trabajador y su sueldo básico, calcular y mostrar:
Bonificación: 5% del sueldo básico
Descuento: 2% del sueldo básico
Sueldo Neto, sumar sueldo básico más bonificación y restarlo con el descuento.
Claro te puedo ayudar en el ejercicio propuesto.
EliminarJava:
import java.util.Scanner;
public class Trabajador {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Entrada de datos
System.out.print("Ingrese el nombre del trabajador: ");
String nombre = sc.nextLine();
System.out.print("Ingrese el sueldo básico: ");
double sueldoBasico = sc.nextDouble();
// Cálculos
double bonificacion = sueldoBasico * 0.05; // 5%
double descuento = sueldoBasico * 0.02; // 2%
double sueldoNeto = sueldoBasico + bonificacion - descuento;
// Salida de resultados
System.out.println("\n--- RESULTADOS ---");
System.out.println("Trabajador: " + nombre);
System.out.println("Sueldo Básico: " + sueldoBasico);
System.out.println("Bonificación (5%): " + bonificacion);
System.out.println("Descuento (2%): " + descuento);
System.out.println("Sueldo Neto: " + sueldoNeto);
sc.close();
}
}
Ejemplo de ejecución
Entrada:
Ingrese el nombre del trabajador: Juan Pérez
Ingrese el sueldo básico: 2000
Salida:
--- RESULTADOS ---
Trabajador: Juan Pérez
Sueldo Básico: 2000.0
Bonificación (5%): 100.0
Descuento (2%): 40.0
Sueldo Neto: 2060.0
Fórmulas utilizadas:
Bonificación = Sueldo Básico × 5%
Descuento = Sueldo Básico × 2%
Sueldo Neto = Sueldo Básico + Bonificación − Descuento
Muy buena esta página. Esta repadre.
ResponderEliminarEsta página es como los raperos de antes
ResponderEliminarFalta programación multihilo, con eso esta pagina estaría en mi top
ResponderEliminar¿Qué es programación multihilo en Java?
EliminarEs cuando un programa puede ejecutar varias tareas al mismo tiempo.
Ejemplo real:
Descargar un archivo mientras se reproduce música
Un contador mientras otro proceso imprime datos
En Java esto se hace con Threads (hilos).
Formas de crear hilos en Java
1) Extender la clase Thread
💻 Ejemplo básico:
class MiHilo extends Thread {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("Hilo: " + i);
try {
Thread.sleep(1000); // pausa 1 segundo
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
}
▶️ Main:
public class Main {
public static void main(String[] args) {
MiHilo hilo = new MiHilo();
hilo.start(); // IMPORTANTE: no usar run()
System.out.println("Programa principal ejecutándose...");
}
}
2) Implementar Runnable (más recomendado)
💻 Ejemplo:
class MiTarea implements Runnable {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("Runnable: " + i);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
}
▶️ Main:
public class Main {
public static void main(String[] args) {
Thread hilo1 = new Thread(new MiTarea());
hilo1.start();
System.out.println("Main ejecutándose...");
}
}
🔥 Ejemplo práctico (tipo ejercicio de clase)
Eliminar🧾 Contador con dos hilos
Uno cuenta del 1 al 5 y otro del 10 al 15.
class Contador implements Runnable {
private int inicio;
private int fin;
private String nombre;
public Contador(int inicio, int fin, String nombre) {
this.inicio = inicio;
this.fin = fin;
this.nombre = nombre;
}
@Override
public void run() {
for (int i = inicio; i <= fin; i++) {
System.out.println(nombre + ": " + i);
try {
Thread.sleep(700);
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
}
▶️ Main:
public class Main {
public static void main(String[] args) {
Thread t1 = new Thread(new Contador(1, 5, "Hilo 1"));
Thread t2 = new Thread(new Contador(10, 15, "Hilo 2"));
t1.start();
t2.start();
System.out.println("Main terminado");
}
}
⚠️ Conceptos importantes
start() → inicia el hilo
run() → NO se llama directamente (solo lógica)
sleep(ms) → pausa el hilo
join() → espera a que un hilo termine
🧪 Ejemplo con join()
t1.start();
t1.join(); // espera que t1 termine
t2.start();
📌 Nivel del tema
Multihilos en Java normalmente es:
👉 Nivel intermedio (después de POO básica)
pero se introduce en cursos básicos como “tema avanzado inicial”.
Java.
ResponderEliminarEjercicio explicativo:
Una tienda registra productos ingresados por teclado.
Por cada producto se ingresa:
Nombre del producto
Precio
El sistema debe permitir ingresar varios productos hasta que el usuario escriba "fin" como nombre.
Al finalizar, mostrar:
Suma total de todos los precios
Cantidad de productos que contienen la letra "A" en su nombre (mayúscula o minúscula)
El producto con mayor precio que contenga la letra "A"
Solución en Java:
Eliminarimport java.util.Scanner;
public class TiendaProductos {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String nombre;
double precio;
double sumaTotal = 0;
int contadorA = 0;
double mayorPrecioA = 0;
String productoMayorA = "";
while (true) {
System.out.print("Ingrese nombre del producto (fin para terminar): ");
nombre = sc.nextLine();
if (nombre.equalsIgnoreCase("fin")) {
break;
}
System.out.print("Ingrese precio: ");
precio = Double.parseDouble(sc.nextLine());
sumaTotal += precio;
if (nombre.toLowerCase().contains("a")) {
contadorA++;
if (precio > mayorPrecioA) {
mayorPrecioA = precio;
productoMayorA = nombre;
}
}
}
System.out.println("\n--- RESULTADOS ---");
System.out.println("Suma total de precios: " + sumaTotal);
System.out.println("Cantidad de productos con letra A: " + contadorA);
if (contadorA > 0) {
System.out.println("Producto con mayor precio que contiene 'A': " + productoMayorA
+ " (" + mayorPrecioA + ")");
} else {
System.out.println("No se ingresaron productos con la letra A.");
}
sc.close();
}
}