elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  formateo de numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: formateo de numeros  (Leído 1,711 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
formateo de numeros
« en: 4 Septiembre 2019, 06:06 am »

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:


En línea

7w7
EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 2.058



Ver Perfil
Re: formateo de numeros
« Respuesta #1 en: 4 Septiembre 2019, 14:58 pm »

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
  1. class SplitString {
  2.  
  3.  public static void main(String[] args) {
  4.  
  5.    String dni = "123456789";
  6.  
  7.    char[] dniChars = dni.toCharArray();
  8.    String dniFinal = "";
  9.    int count = 0;
  10.  
  11.    for (int i = dniChars.length - 1; i >= 0; i--) {
  12.      if (count >= 3) {
  13.        dniFinal = "." + dniFinal;
  14.        count = 0;
  15.      }
  16.      dniFinal = dniChars[i] + dniFinal;
  17.      count++;
  18.    }
  19.  
  20.    System.out.println(dniFinal);
  21.  }
  22. }
  23.  
  24.  

- 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
  1. class SplitString {
  2.  
  3.  public static void main(String[] args) {
  4.  
  5.    String dni = "123456789";
  6.    String dniReverse = new StringBuilder(dni).reverse().toString();
  7.    String dniReversePoint = String.join(".", dniReverse.split("(?<=\\G\\d{3})"));
  8.    String dniFinal = new StringBuilder(dniReversePoint).reverse().toString();
  9.    System.out.println(dniFinal);
  10.  
  11.  }
  12. }
  13.  
  14.  

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


En línea

Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: formateo de numeros
« Respuesta #2 en: 4 Septiembre 2019, 18:29 pm »

Funcionó, muchas gracias!  ;-)
En línea

7w7
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines