[RESOLVIDO] Gerar números aleatórios "grandes"

3 respostas
rafael.espiritosanto

Pessoal,

estou há tempos afastado do Java, então vai uma pergunta aparentemente boba. Estou tentando automatizar a geração de scripts para importação no Oracla Case Designer. Para isso eu faço consultas ao repositório de modo a identificar e/ou criar entidades.
Cada entidade possui um ID, que é representado por um NUMBER(38). Por curiosidade, vi que o menor valor de ID possuia 35 dígitos, enquanto que o maior possuia o limite máximo. Desta forma, quando crio uma nova entidade, tento gerar um ID seguindo a mesma ordem de grandeza dos existentes.

Vem a dúvida então: como gerar números aleatórios com tal ordem de grandeza? Se eu utilizar

Math.abs(random.nextLong()) nem chego perto da ordem de grandeza.

Obrigado!

3 Respostas

E

Use http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html#probablePrime(int,%20java.util.Random) e passe para o primeiro parâmetro o valor 93; o segundo você deve atribuir o valor de uma variável estática declarada como:

static Random r = new Random();
E

Outra maneira, que é mais rápida, é usar

http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html#BigInteger(int,%20java.util.Random)

e passar o valor 93 para o primeiro parâmetro.

rafael.espiritosanto

Opa!

Valeu pela ajuda!

eu passei 113 bytes, daí os números estão vindo com 34 dígitos.

Obrigado!!

Criado 30 de março de 2012
Ultima resposta 30 de mar. de 2012
Respostas 3
Participantes 2