lunes, 18 de enero de 2021

En programación hay cosas que no cambian nunca




Además de un toque de humor os dejo por aqui algunas cosa sobre expresiones regulares:

Un sitio online donde comprobar las expresiones regulares: https://www.regexpal.com/

Ahi he visto algunas expresiones interesantes :

Valida una URL : https://www.regexpal.com/93652

Valida el formato de fecha (yyyy-mm-dd) : https://www.regexpal.com/96683

Valida una IP : https://www.regexpal.com/22

Para terminar os dejo por aqui una chuletilla para las expresiones regulares

 

domingo, 17 de enero de 2021

Métodos length,charAt y getChars de String en Java

 Los métodos length, charAt y getChars de String determinan la longitud de una cadena, obtienen el carácter que se encuentra en una ubicación específica de una cadena y recuperan el conjunto completo de caracteres en una cadena, respectivamente.

Utilizamos el método length de la clase String para determinar el número de caracteres en la cadena s1.  

Después se imprimen los caracteres de la cadena s1 en orden inverso (y separados por espacios).

El método charAt de String devuelve el carácter ubicado en una posición específica en la cadena. Recibe un argumento entero que se utiliza como el índice, y devuelve el carácter en esa posición.  

En la línea 24 se utiliza el método getChars para copiar los caracteres de una cadena en un arreglo de caracteres. El primer argumento es el índice inicial en la cadena, a partir del cual se van a copiar los caracteres. El segundo argumento es el índice que está una posición más adelante del último carácter que se va a copiar de la cadena. El tercer argumento es el arreglo de caracteres en el que se van a copiar los caracteres. El último argumento es el índice inicial en donde se van a colocar los caracteres copiados en el arreglo de caracteres de destino.

 A continuación, en la línea se imprime el contenido del arreglo char, un carácter a la vez.


Ejercicio SQL Consultas SELECT

 


1. Obtener los datos completos de los empleados: 

SELECT * FROM empleado;

2. Obtener los datos completos de los departamentos:

 SELECT * FROM departamento;

3. Obtener los datos de los empleados con cargo 'Secretaria': 

SELECT * FROM empleado WHERE cargoE='Secretaria';

4. Obtener el nombre y salario de los empleados:

SELECT NOMEMP, SALEMP FROM EMPLEADO;

5. Obtener los datos de los empleados vendedores, ordenado por nombre:

SELECT * FROM empleado
WHERE cargoE='Vendedor'
ORDER BY nomEmp ASC;

6. Listar el nombre de los departamentos: 

SELECT DISTINCT nombreDpto FROM departamento;

7. Obtener el nombre y cargo de todos los empleados, ordenado por salario:

SELECT nomEmp, cargoE, salEmp
FROM empleado
ORDER BY salEmp;
 

8. Listar los salarios y comisiones de los empleados del departamento 2000, ordenado por comisión.

SELECT salEmp, comisionE
FROM empleado
WHERE codDepto='2000';

 9. Listar todas las comisiones.

SELECT DISTINCT comisionE FROM empleado;

10. Obtener el valor total a pagar que resulta de sumar a los empleados del departamento 3000 una bonificación de 500.000, en orden alfabético del empleado.

SELECT nomEmp, salEmp,(salEmp+500000)
AS 'Salario + Bonificacion'
FROM empleado
WHERE codDepto='3000'
ORDER BY nomEmp ;

11. Obtener la lista de los empleados que ganan una comisión superior a su sueldo.

SELECT nomEmp,comisionE,salEmp FROM empleado
WHERE comisionE > salEmp;

12. Listar los empleados cuya comisión es menor o igual que el 30 % de su sueldo.

SELECT nomEmp, salEmp, comisionE FROM empleado
WHERE comisionE <= (salEmp*0.30);

13. Elabore un listado donde para cada fila, figure 'Nombre' y 'Cargo' antes del valor respectivo para cada empleado. 

SELECT nomEmp
AS 'Nombre', cargoE AS 'Cargo'
FROM empleado; 

14. Hallar el salario y la comisión de aquellos empleados cuyo número de documento de identidad es superior al '19.709.802'.

SELECT salEmp,comisionE,nDIEmp
FROM empleado
WHERE nDIEmp > '19.709.802';

15. Muestra los empleados cuyo nombre empiece entre las letras J y Z (rango). Liste estos empleados y su cargo por orden alfabético.

SELECT nomEmp, cargoE FROM empleado
WHERE nomEmp BETWEEN 'J%' AND 'Z%'
ORDER BY nomEmp;

Otra forma seria :

SELECT nomEmp, cargoE FROM empleado
WHERE nomEmp > 'J' AND nomEmp < 'Z'
ORDER BY nomEmp;

16. Listar el salario, la comisión, el salario total (salario + comisión), documento de identidad del empleado y nombre, de aquellos empleados que tienen comisión superior a 1.000.000, ordenar el informe por el número del documento de identidad

SELECT salEmp, comisionE, nDIEmp, nomEmp,
(salEmp+comisionE) AS 'Salario Total'
FROM empleado WHERE comisionE > 1000000
ORDER BY nDIEmp;

17. Obtener un listado similar al anterior, pero de aquellos empleados que no tienen comisión

SELECT salEmp, comisionE, nDIEmp, nomEmp,
(salEmp+comisionE) AS 'Salario Total'
FROM empleado WHERE comisionE <= 0
ORDER BY nDIEmp;

18. Hallar los empleados cuyo nombre no contiene la cadena 'MA'.

SELECT nomEmp FROM empleado
WHERE nomEmp NOT LIKE '%MA%';

19. Obtener los nombres de los departamentos que no sean 'Ventas' ni 'Investigación' ni 'MANTENIMIENTO'.  

SELECT * FROM departamento
WHERE nombreDpto NOT IN
('Ventas','Investigación','MANTENIMIENTO');

20. Obtener el nombre y el departamento de los empleados con cargo 'Secretaria' o 'Vendedor', que no trabajan en el departamento de "PRODUCCION", cuyo salario es superior a $1.000.000, ordenados por fecha de incorporación

SELECT e.nomEmp, d.nombreDpto, e.cargoE, e.salEmp, e.fecIncorporacion
FROM empleado e, departamento d
WHERE e.codDepto = d.codDepto
AND e.salEmp > 1000000
AND (e.cargoE)='Vendedor'
OR (e.cargoE)='Secretaria'
AND (d.nombreDpto) <> 'PRODUCCIÓN'
ORDER BY e.fecIncorporacion

21. Obtener información de los empleados cuyo nombre tiene exactamente 11 caracteres:

SELECT * FROM empleado
WHERE char_length(nomEmp) = 11;

22. Obtener información de los empleados cuyo nombre tiene al menos 11 caracteres

SELECT * FROM empleado
WHERE char_length(nomEmp) < 11;

 23. Listar los datos de los empleados cuyo nombre inicia por la letra 'M', su salario es mayor a $800.000 o reciben comisión y trabajan para el departamento de 'VENTAS'

SELECT e.nomEmp, d.nombreDpto, e.comisionE, e.salEmp
FROM empleado e, departamento d
WHERE e.codDepto = d.codDepto
AND e.nomEmp LIKE 'M%'
AND (d.nombreDpto) = 'VENTAS'
AND (e.salEmp > 800000 OR e.comisionE > 0)
;

 24. Obtener los nombres, salarios y comisiones de los empleados que reciben un salario situado entre la mitad de la comisión la propia comisión.

SELECT nomEmp, salEmp, comisionE
FROM empleado
WHERE salEmp BETWEEN(comisionE/2)
AND comisionE;

25. Mostrar el salario más alto de la empresa.

SELECT nomEmp, salEmp,
MAX(salEmp) AS 'Salario mas Alto'
FROM empleado;

26. Mostrar cada una de las comisiones y el número de empleados que las reciben. Solo si tiene comision.

SELECT comisionE,
COUNT(*)
AS 'Numero Empleados'
FROM empleado
GROUP BY comisionE
HAVING comisionE > 0;

27. Mostrar el nombre del último empleado de la lista por orden alfabético.

SELECT nomEmp FROM empleado
ORDER BY nomEmp DESC
LIMIT 1;

Otra forma:

SELECT MAX(nomEmp) AS 'Ultimo Empleado'
FROM empleado;

28. Hallar el salario más alto, el más bajo y la diferencia entre ellos.

SELECT MAX(salEmp) AS 'Salario más Alto'
, MIN(salEmp) AS 'Salario más Bajo'
, MAX(salEmp)- MIN(salEmp) AS 'Diferencia'
FROM empleado;

29. Mostrar el número de empleados de sexo femenino y de sexo masculino, por departamento. 

SELECT codDepto, sexEmp, COUNT(*)
FROM empleado
GROUP BY codDepto, sexEmp;

30. Hallar el salario promedio por departamento.

SELECT codDepto, AVG(salEmp) AS 'Salario Promedio'
FROM empleado
GROUP BY codDepto;

31. Mostrar la lista de los empleados cuyo salario es mayor o igual que el promedio de la empresa. Ordenarlo por departamento.

SELECT nomEmp, salEmp, codDepto FROM empleado
WHERE salEmp >= (
  SELECT AVG(salEmp) FROM empleado)
  ORDER BY codDepto ;

32. Hallar los departamentos que tienen más de 3 empleados así como su nº de empleados.

SELECT d.codDepto, d.nombreDpto
FROM empleado e, departamento d
WHERE e.codDepto = d.codDepto
GROUP BY d.codDepto
HAVING count(*) >= 3;

33. Mostrar el código y nombre de cada jefe, junto al número de empleados que dirige. Solo los que tengan más de dos empleados (2 incluido).

select j.nDIEmp, j.nomEmp, count(*)
as 'Num Empleados'
from empleado e, empleado j
where e.jefeID = j.nDIEmp
group by j.nomEmp
having count(*)>= 2
order by count(*) desc;

34. Hallar los departamentos que no tienen empleados*

select d.codDepto, d.nombreDpto
from departamento d, empleado e
where d.codDepto = e.codDepto
group by d.codDepto
having count(*) = 0;

*No hay ninguno con cero empleados. Si probamos con 1 si hay 3.

35. Mostrar el nombre del departamento cuya suma de salarios sea la más alta, indicando el valor de la suma:

select d.nombreDpto, SUM(e.salEmp)
from departamento d, empleado e
where d.codDepto = e.codDepto
group by d.nombreDpto
order by SUM(e.salEmp) desc
limit 1; 
 

viernes, 15 de enero de 2021

Programa Inmobiliaria Clientes Viviendas en Java

Metodo Java Convierte en Mayusculas la primera Letra de Cada Palabra

Este metodo programado en Java convierte en mayúsculas la primera letra de cada palabra.

El código comienza con el metodo .split que divide una cadena dada con la ayuda de la expresion regular “\\s”.

La expresión regular “\\s” busca un espacio en la cadena, si lo encuentra suponemos que es el espacio que hay entre una palabra y otra.

Las palabras encontradas serán guardadas como array en el String palabrasEncontradas[].

Tambien creamos un String palabraMayuscula, será una cadena nueva donde vamos a guardar la cadena resultante.

Despues tenemos un for each que recorrerá cada cadena palabra del array palabrasEncontradas[]

Entonces ¿ que hace este for ? Es un for each o for mejorado .

Entendamos como funciona el for each :

for (String palabra : palabrasEncontradas)

“El for recorrerá el array de palabrasEncontradas , y para cada palabra de tipo String hará algo”

Explicamos lo que hará , en este caso tenemos primero un nuevo String llamado primeraLetra al cual le asignamos la primera letra extraida con un metodo substring que lo que hace es separar la primera letra de la primera palabra con : palabra.substring(0, 1) .

Después el siguiente subtring lo que hace es separar las letras siguientes con palabra.substring(1) y las asigna a un nuevo String llamado siguientesLetras.

La variable palabraMayuscula al final del for le asignamos la primeraLetra que pasamos a mayúsculas con el método toUpperCase y concatenamos con el substring de siguientesLetras.
Al final lo concatenamos todo con un espacio para separar una palabra de la otra, pero como al final tendriamos un espacio de sobra, con el metodo trim en el return final recortamos el espacio sobrante con palabraMayuscula.trim()
Y eso es todo , cualquier frase ( cadena) que introduzcamos nos convertirá la primera letra de cada palabra en mayúsculas.

*Recordar que el for lo que hace es rellenar el array palabrasEncontradas[] con cada palabra contenida en la cadena.

Fuente : https://www.javatpoint.com/java-program-to-capitalize-each-word-in-string

memory cards gridlock

 Privacy Policy for Memory Cards Gridlock Last Updated: April 23, 2023 This Privacy Policy describes the data practices of Jose Jordan (&quo...