formateo de numeros

Iniciado por Beginner Web, 4 Septiembre 2019, 06:06 AM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

Hola como formateo un numero que cada 3 numeros coloque un punto de derecha a izquierda por ejemplo el dni

123456789

me de

123.456.789

o

12345

me de

12.345

:huh:
7w7

EdePC

Saludos,

- La idea es recorrer tus caracteres de derecha a izquierda y si corresponde al tercer caracter hay que poner un punto además de dicho caracter.

- Se puede hacer usando un bucle para iterar cada caracter:

Código (java) [Seleccionar]

class SplitString {

  public static void main(String[] args) {

    String dni = "123456789";

    char[] dniChars = dni.toCharArray();
    String dniFinal = "";
    int count = 0;

    for (int i = dniChars.length - 1; i >= 0; i--) {
      if (count >= 3) {
        dniFinal = "." + dniFinal;
        count = 0;
      }
      dniFinal = dniChars[i] + dniFinal;
      count++;
    }

    System.out.println(dniFinal);
  }
}



- Aunque esto no tiene nada "raro", solo lo de convertir el String a char[]. Así que supongo que buscas algo más "raro", por ejemplo:

Código (java) [Seleccionar]

class SplitString {

  public static void main(String[] args) {

    String dni = "123456789";
    String dniReverse = new StringBuilder(dni).reverse().toString();
    String dniReversePoint = String.join(".", dniReverse.split("(?<=\\G\\d{3})"));
    String dniFinal = new StringBuilder(dniReversePoint).reverse().toString();
    System.out.println(dniFinal);

  }
}



-- La idea es casi la misma, se invierte el String, se parte cada 3 caracteres usando un ".", se vuelve a invertir y se imprime.

Beginner Web

Funcionó, muchas gracias!  ;-)
7w7