import java.util.Scanner;

public class Ejercicio2 {
    public static void main(String[] args) {

        // Scanner teclado = new Scanner(System.in);

        // System.out.println("Ingrese una cadena que represente a una dirección IPv4");
        // direccionIp = teclado.nextLine();

       String direccionIp = "192.234.222.0";

        String ip1="", ip2="", ip3="", ip4=""; //las guardo por separado

        boolean bloque1 = false, bloque2 = false, bloque3 = false, bloque4 = false;
        // false => no relleno
        // true => relleno

        String numGeneral = "";

        for (int i = 0; i < direccionIp.length(); i++) {
            char caracter = direccionIp.charAt(i);

            if (caracter != '.') { //Si es un . añade lo siguiente
                numGeneral += caracter;
            } else { //y sino...

                if (bloque1 == false) {
                    ip1 = numGeneral;
                    bloque1 = true; //relleno
                    numGeneral = ""; // Vacio el auxiliar
                } else if (bloque2 == false) {
                    ip2 = numGeneral;
                    bloque2 = true; //relleno
                    numGeneral = ""; // Vacio el auxiliar
                } else if (bloque3 == false) {
                    ip3 = numGeneral;
                    bloque3 = true; //relleno
                    numGeneral = ""; // Vacio el auxiliar //NO ENTIENDO LO DE VACIAR
                }
            }

        }ip4 = numGeneral;

        System.out.println("B1: " + ip1);
        System.out.println("B2: " + ip2);
        System.out.println("B3: " + ip3);
        System.out.println("B4: " + ip4);


        // Se convierte a Int para poder compararlo.

        int b1 = Integer.parseInt(ip1);
        int b2 = Integer.parseInt(ip2);
        int b3 = Integer.parseInt(ip3);
        int b4 = Integer.parseInt(ip4);

        boolean privado = true;
        char clase = 'x'; //inicializarlo con un caracter.

        //● Clase A: 10.0.0.0 a 10.255.255.255
        if(b1 ==10 && (b2 >=0 && b2 <=255) && (b3 >=0 && b3 <=255) && (b4 >=0 && b4 <=255)){
            privado = true;
            clase = 'A' ;
        }

        //● Clase B: 172.16.0.0 a 172.31.255.255
        if (b1 == 172 && (b2 >= 16 && b2 <=31) && (b3 >= 0 && b3 <= 255) && (b4 >= 0 && b4 <= 255)){
            privado = true;
            clase = 'B' ;
        }

        //● Clase C: 192.168.0.0 a 192.168.255.255
        if (b1 == 192 && b2==168  && (b3 >= 0 && b3 <= 255) && (b4 >= 0 && b4 <= 255)){
            privado = true;
            clase = 'C' ;
        }

        if (privado == true){
            System.out.println("La dirección IP "+direccionIp+ " es privada y también es de la clase " +clase);
        }else {
            System.out.println("La dirección IP "+direccionIp+ " es pública");
        }



    }
    }

