fork download
  1. import java.util.*;
  2.  
  3. class Main {
  4. public static void main (String[] args) {
  5. ImprimeLista(SeparaDigitos(12345));
  6. ImprimeLista(SeparaDigitos(-123));
  7. ImprimeLista(SeparaDigitosNegativo(-123));
  8. ImprimeLista(SeparaDigitosNegativo(123));
  9. }
  10. public static List<Integer> SeparaDigitos(int valor) {
  11. List<Integer> numerosGerados = new ArrayList<>();
  12. int positivo = Math.abs(valor);
  13. int tamanho = (int)(Math.log10(positivo) + 1);
  14. int posicao = 0;
  15. while(posicao < tamanho) {
  16. int digito = valor / (int)Math.pow(10, tamanho - posicao - 1) * Integer.signum(valor);
  17. numerosGerados.add(digito);
  18. valor %= digito * Math.pow(10, tamanho - posicao - 1);
  19. posicao++;
  20. }
  21. return numerosGerados;
  22. }
  23. public static List<Integer> SeparaDigitosNegativo(int valor) {
  24. List<Integer> numerosGerados = new ArrayList<>();
  25. int positivo = Math.abs(valor);
  26. int tamanho = (int)(Math.log10(positivo) + 1);
  27. int posicao = 0;
  28. while(posicao < tamanho) {
  29. int digito = valor / (int)Math.pow(10, tamanho - posicao - 1) * (posicao == 0 ? 1 : Integer.signum(valor));
  30. numerosGerados.add(digito);
  31. valor %= digito * Math.pow(10, tamanho - posicao - 1);
  32. posicao++;
  33. }
  34. return numerosGerados;
  35. }
  36. public static void ImprimeLista(List<Integer> lista) {
  37. for (int item : lista) {
  38. System.out.println(item);
  39. }
  40. System.out.println();
  41. }
  42. }
  43.  
  44. //https://pt.stackoverflow.com/q/53225/101
Success #stdin #stdout 0.06s 32588KB
stdin
Standard input is empty
stdout
1
2
3
4
5

1
2
3

-1
2
3

1
2
3