Coger IP local y IP de una URL java

import java.net.InetAddress;

/**
 *
 * @author
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)  throws Exception {
        // Aqui obtenemos la ip local de la maquina
        InetAddress address = InetAddress.getLocalHost();
        System.out.println("IP Local :"+address.getHostAddress());

        // Aqui obtenemos la ip de la web del programador
        String domain="www.google.es";
        InetAddress address2 = InetAddress.getByName(domain);
        byte IP[] = address2.getAddress();
        System.out.print("IP del dominio "+domain+" :");
        for (int index = 0; index < IP.length; index++)
        {
           if (index > 0)
                 System.out.print(".");
           System.out.print(((int)IP[index])& 0xff);
        }
    }
}

Cifrado en Java

public class Main {

private static String alfabeto = "abcdefghijklmnñopqrstuvxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ .,:áéíóúÁÉÍÓÚ";

public static void main(String[] args) {
int numero=113;
int[] clave = new int[]{3,numero*6+1};
String a = codificar(clave, "hola");
System.out.println(a);
System.out.println(codificar(claveDescifrado(clave), a));

}

private static int[] claveDescifrado(int[] clave){
int[] descif = new int[2];
descif[0]=inverso(clave[0], alfabeto.length());
descif[1]=-inverso(clave[0], alfabeto.length())*clave[1];
if(descif[1]<0){
descif[1]=alfabeto.length()+descif[1];
}
if(descif[0]<0){
descif[0]=alfabeto.length()+descif[0];
}
return descif;
}

private static String codificar(int[] clave, String mensaje){
int[] secuencia = pasarTextoNumero(mensaje);
String mensajeCodificado = "";
for (int i = 0; i < secuencia.length; i++) {
mensajeCodificado+=alfabeto.charAt(operacion(secuencia[i],clave));
}
return mensajeCodificado;
}

private static int operacion(int numero, int[] clave){
return (clave[0]*numero+clave[1])%alfabeto.length();
}

private static int[] pasarTextoNumero(String mensaje){
int[] secuencia = new int[mensaje.length()];//array con la longitud del mensaje

for (int i = 0; i < secuencia.length; i++) {
char letra = mensaje.charAt(i);
int valor = valorLetra(letra);
secuencia[i]=valor;
}
return secuencia;
}

private static int valorLetra(char letra){
for (int j = 0; j < alfabeto.length(); j++) {
if(letra==alfabeto.charAt(j)){
return j;
}
}
return -1;
}

    public static int inverso(int a,int m)
    {
        int c1=1,c2=-1*(m/a);//coeficiente de a y b respectivamente
        int t1=0,t2=1;//coeficientes penultima corrida
        int r=m%a;//residuo, asignamos 1 como condicion de entrada
        int x=a,y=r,c;
        while(r!=0){
       c= x/y;//cociente
       r= x%y;//residuo
       //guardamos valores temporales de los coeficientes
       //multiplicamos los coeficiente por -1*cociente de la division
       c1*=-1*c;
       c2*=-1*c;
       //sumamos la corrida anterior
       c1+=t1;
       c2+=t2;
       //actualizamos corrida anterior
       t1=-1*(c1-t1)/c;
       t2=-1*(c2-t2)/c;
       x=y;
       y=r;
        }
        if(x==1)//residuo anterior es 1 , son primos relativos y el inverso existe
            return t2;
        else
            return -1;
    }

}

Conversión de un DNI extranjero en Java

public static int conversionDni(String dni){
String nuevoDni = "";
switch(dni.charAt(0)){
case 'X':
nuevoDni="0"+dni.substring(1,dni.length());
break;
case 'Y':
nuevoDni="1"+dni.substring(1,dni.length());
break;
case 'Z':
nuevoDni="2"+dni.substring(1,dni.length());
break;
default:
nuevoDni=dni;
break;
}
return Integer.parseInt(nuevoDni);
}

Leer celdas de Excell en Java

String cellValue = hssfRow.getCell(c) == null?"":
                                (hssfRow.getCell(c).getCellType() == Cell.CELL_TYPE_STRING)?hssfRow.getCell(c).getStringCellValue():
                                (hssfRow.getCell(c).getCellType() == Cell.CELL_TYPE_NUMERIC)?"" + hssfRow.getCell(c).getNumericCellValue():
                                (hssfRow.getCell(c).getCellType() == Cell.CELL_TYPE_BOOLEAN)?"" + hssfRow.getCell(c).getBooleanCellValue():
                                (hssfRow.getCell(c).getCellType() == Cell.CELL_TYPE_BLANK)?"":
                                (hssfRow.getCell(c).getCellType() == Cell.CELL_TYPE_FORMULA)?"FORMULA":
                                (hssfRow.getCell(c).getCellType() == Cell.CELL_TYPE_ERROR)?"ERROR":"";

Dividir numero de cuenta en sus partes, sin incluir IBAN Java

//funcion que divide la cuenta en sus 5 partes
public static String[] dividirCuenta(String cuenta, String pais){
String[] numCuenta = new String[5];

numCuenta[0] = pais;//codigo del pais

numCuenta[1] = cuenta.substring(0,4);//codigo de entidad

numCuenta[2] = cuenta.substring(4,8);//codigo de oficina

numCuenta[3] = cuenta.substring(8,10);//digito de control

numCuenta[4] = cuenta.substring(10,20);//numero de cuenta


return numCuenta;
}