Teoría



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


49 comentarios:

  1. Muchisisisimas gracias , estudio programacion y tus aportes me ayudaron bastante :D

    ResponderEliminar
  2. Me alegro de que os sirva de ayuda. Gracias por seguir el blog

    ResponderEliminar
  3. enrique 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

    ResponderEliminar
    Respuestas
    1. Claro. En Java, Integer.parseInt() se utiliza para convertir un texto (String) en un número entero (int).

      Sintaxis
      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.

      Eliminar
  4. Hola gracias por el Blog me esta sirviendo de mucho en el curso de Java

    ResponderEliminar
  5. Excelente Blog!, algún correo donde pueda ubicarte? Saludos

    ResponderEliminar
  6. Muchas 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

    por 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.

    ResponderEliminar
  7. 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 !

    ResponderEliminar
  8. Muchísimas gracias!!! Me ha servido y ayudado mucho tu blog!! Así da gusto programar :)
    Un besito de una futura ingeniera informática :D

    ResponderEliminar
  9. ¡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.

    Gracias 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);




    }


    }

    ResponderEliminar
    Respuestas
    1. 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.

      Por 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.

      Eliminar
  10. Gracias me ayudo mucho este blog me haz salvado estoy agradecido

    ResponderEliminar
  11. SALUDOS AL GRUPO 3°ACV DE PROGRAMACIÓN

    ResponderEliminar
  12. Hola me podría ayudar con este enunciado por favor gracias.
    En 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.

    ResponderEliminar
    Respuestas
    1. tienes que crear una app que diga .estudialoqueestaarriba.JAVA y otra que diga .lapracticahacealmaestro.JAVA

      Eliminar
    2. Te ayudo.

      Java.

      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.

      Eliminar
    3. Java.

      Có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.

      Eliminar
  13. 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.

    ResponderEliminar
    Respuestas
    1. Yo te puedo ayudarte.

      Las 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.

      Eliminar
    2. 3. Listas Enlazadas (Linked List)

      Una 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.

      Eliminar
  14. Ayuda alguien me podría decir como creo intervalos en java

    ResponderEliminar
    Respuestas
    1. En Java, los intervalos normalmente se trabajan con operadores relacionales (>=, <=, >, <) dentro de una condición if.

      Ejemplo 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.

      Eliminar
  15. Me encanta el blog, aver s podrías un día hacer un tutorial de servlets!

    ResponderEliminar
  16. Muy buen blog explica todo muy bien, paso a paso y dice lo necesario.

    ResponderEliminar
  17. esta bien culera su pagina xde

    ResponderEliminar
  18. Ayuda 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

    ResponderEliminar
    Respuestas
    1. Te ayudo.

      Claro. 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.

      Eliminar
  19. 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.

    ResponderEliminar
    Respuestas
    1. Hola, yo te ayudo.

      Java:

      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.

      Eliminar
  20. Examen de los 30 amigos

    import 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;
    }
    }

    ResponderEliminar
  21. Examen leer fichero

    import 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;

    }
    }

    ResponderEliminar
  22. import java.io.*;
    import 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;
    }
    }

    ResponderEliminar
  23. Interesante 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.

    ResponderEliminar
  24. Por favor, pueden ayudarme con este problema
    Ingrese 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.

    ResponderEliminar
    Respuestas
    1. Claro te puedo ayudar en el ejercicio propuesto.

      Java:

      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

      Eliminar
  25. Muy buena esta página. Esta repadre.

    ResponderEliminar
  26. Esta página es como los raperos de antes

    ResponderEliminar
  27. Falta programación multihilo, con eso esta pagina estaría en mi top

    ResponderEliminar
    Respuestas
    1. ¿Qué es programación multihilo en Java?

      Es 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...");
      }
      }

      Eliminar
    2. 🔥 Ejemplo práctico (tipo ejercicio de clase)
      🧾 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”.

      Eliminar
  28. Java.

    Ejercicio 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"

    ResponderEliminar
    Respuestas
    1. Solución en Java:

      import 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();
      }
      }

      Eliminar