davidbermudez.github.io/Java

View on GitHub

Apuntes de Programación en JAVA

String

Son tipos de datos Homogéneos, estáticos y lineales.

En Java se utilizan dos tipos de datos para manejar cadenas de texto: String y Char

Funciones de Character

char c1 = 'A':

Character.isLetter(c1); 	// Comprobar que sea una letra 
Character.isDigit(c1); 		// Comprobar si es un número 
Character.isUpperCase(c1);	// Comprobar si es mayúsculas 
Character.isLowerCase(c1);	// Comprobar si es minúsculas 

Funciones de String

String s1 = "Hola";
String s2 = "Adios";

// Comparar cadenas 
s1.equals(s2);
// Compara dos cadenas alfabéticamente, e indica cual es mayor o menor: 
s1.compareTo(s2); // Devuelve: < 0 sí 's1' es mas pequeña, 0 sí 's1' y 's2' son iguales, > 0 sí la primera es mayor 
// Nos dice si la cadena contiene otra cadena 
s1.contains(s2); 
// Nos dice la posición dentro de 's1' del carácter char
s1.indexOf(char);
// Nos dice la posición de un carácter a partir de la posición pos 
s1.indexOf(char, pos);
// Idem, pero desde el final 
s1.lastIndexOf(char);
// Para ver si está vacía. Similar a s1.equals("") 
s1.isEmpty();
// Para ver si una cadena empieza con algo 
s1.startWith(s2);
// Para ver si una cadena acaba con algo 
s1.endWith(s2);
// Convertir a mayúsculas 
s1.toUpperCase();
// Convertir a minúsculas 
s1.toLowerCase();
// Sustituir las ocurrencias de a por b en la cadena s1
s1.replace(a, b);
// Elimina espacios en blano antes y después
s1.trim();
// Convierte un String en un Array de char
char[] array = s1.toCharArray();
// Convierte un Array en una cadena 
s1 = new String(array);
// recorta una cadena desde su inicio hasta final-1 
s1.substring(inicio, final)
// recorta una cadena desde su inicio hasta el final 
s1.substring(inicio);
// Devuelve un array conteniendo las distintas partes de una cadena divididas según el parámtero de búsqueda. 
s1 = "hola que tal";
String[] cadena = s1.split(" "); //cadena[2] => "tal"
// pega en una cadena un array de String, separándolas con –en este caso- con un espacio 
String s1 = String.join (" ", cadena);

Algunas funciones útiles

public static String quitaAcentos(String a) {
    String acentos = "áÁéÉíÍóÓúÚüÜ";
    String normal = "aAeEiIoOuUuU";
    for (int i = 0; i < acentos.length(); i++) {
        a = a.replace(acentos.charAt(i), normal.charAt(i));        
    }
    return a;
}
public static boolean compruebaEmail(String a){
    if(a.matches("^[^@]+@[^@]+\\.[a-zA-Z]{2,}$")){
        return true;
    } else return false;
}

Funciones con fechas y horas

public static int diasMes(int mes){
    int devuelve;
    switch (mes)
    {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
            devuelve = 31;
            break;
        case 2:
            devuelve = 28;
            break;
        case 4: case 6: case 9: case 11:
            devuelve = 30;
            break;
        default:
            devuelve = 0;
            break;
    }
    return devuelve;
}

public static int diasMes2(int mes, int anno){
    if (bisiesto(anno))
    {
        return 29;
    }
    else
    {
        return diasMes(mes);
    }
}

public static boolean bisiesto(int anno){
    // Año bisiesto es el divisible entre 4,
    // salvo que sea año secular -último de cada siglo,
    // terminado en «00»-, en cuyo caso también
    // ha de ser divisible entre 400.
    boolean devuelve = false;
    if(anno % 4 == 0)
    {
        // año secular
        if(anno % 100 == 0)
        {
            // divisible entre 400
            if(anno % 400 == 0)
            {
                devuelve = true;
            }
        }
        else
        {
            devuelve = true;
        }
    }
    return devuelve;
}

public static int diasTranscurridos(int dia, int mes, int anno){
    // desde el 01/01 del año actual
    int dias = 0, i;
    for(i = 1; i < mes; i++)
    {
        dias = dias + diasMes2(i, anno);
    }
    dias = dias + dia;
    return dias;
}

public static int diasTranscurridos1980(int dia, int mes, int anno)
{
    // desde el 01/01 del año 1980
    int dias = 0, i, j;
    for (j = 1980; j < anno; j++)
    {
        if(bisiesto(j))
        {
            dias = dias + 366;
        }
        else
        {
            dias = dias + 365;
        }
    }
    // ultimo año
    dias = dias + diasTranscurridos(dia, mes, anno);
    return dias;
}

public static int diasEntreFechas(int d1, int m1, int a1, int d2, int m2, int a2)
{
    int diasTotal1, diasTotal2, diferencia;
    diasTotal1 = diasTranscurridos1980(d1, m1, a1);
    diasTotal2 = diasTranscurridos1980(d2, m2, a2);
    diferencia = diasTotal2 - diasTotal1;
    return diferencia;
}

public static int diaSemanaFecha(int d, int m, int a)
{
    int def = diasTranscurridos1980(d,m,a);
    return (def % 7) + 1;
}

public static int horaASegundos(int h, int m, int s)
{
    return h * 3600 + m * 60 + s;
}

public static String escribeHoraBonita(int h, int m, int s)
{
    // valores permitidos
    // esta función admite cualquier valor en minutos y segundos
        
    if (s > 59){
        // el exceso se lo añadimos a los minutos
        m = m + (s / 60);
        s = (s % 60);
    }
    if (m > 59){
        // el exceso se lo añadimos a las horas
        h = h + (m / 60);
        m = (m % 60);
    }
    String hora = "";
    if (h < 10)
    {
        hora = "0";
    }
    hora = hora + h + ":";
    if (m < 10)
    {
        hora = hora + "0";
    }
    hora = hora + m + ":";
    if (s < 10)
    {
        hora = hora + "0";
    }
    hora = hora + s;
    return hora;
}

public static String escribeSegundosBonito(int s)
{
    return escribeHoraBonita(0,0, s);
}

public static int segundosTranscurridos(int h1, int m1, int s1, int h2, int m2, int s2)
{
    return (h2 - h1) * 3600 + (m2 - m1) * 60 + (s2 - s1);
}

public static int segundosTranscurridos1980(int d, int m, int a, int h, int M, int s)
{
    int x = diasTranscurridos1980(d, m, a);
    x = x * 24 * 3600 - 86400;  // restamos los segundos existentes en las últimas 24 horas
    x = x + segundosTranscurridos(0, 0, 0, h, M, s);
    return x;
}