J2ME: ¿Cómo generar números aleatorios?
Pregunta
Sólo quería saber cómo puedo generar números aleatorios utilizando J2ME CLDC 1.0 MIDP 2.0?
Básicamente quiero generar un número aleatorio de 14 dígitos cada vez que el elemento de menú Generar se hace clic en la pantalla del móvil.
Solución
No estoy muy familiarizado con J2ME, sin embargo, el Javadoc muestra que la clase Random es parte de la API de CLDC, por lo que puede generar un número de 14 dígitos como esto:
public static void main(String[] args) {
Random r = new Random();
long l = r.nextLong();
System.out.println(String.format("%015d", l).substring(1, 15));
}
Otros consejos
Random r = new Random();
r.nextInt(bottomX-topX)+topX; //will give you the next random integer in range [bottomX,topX]
Puede utilizar los href="http://java.sun.com/javame/reference/apis/jsr037/java/util/Random.html" aleatoria clase de MIDP, o la una en CLDC 1.1
nextLong
y luego truncar o utilice siguiente (44) e iterar desde allí a disfrutar de una auténtica 14-número largo.
import java.util.Random;
private static void showRandomInteger(int aStart, int aEnd){
Random generator = new Random();
generator.setSeed(System.currentTimeMillis());
if ( aStart > aEnd ) {
throw new IllegalArgumentException("Start cannot exceed End.");
}
//get the range, casting to long to avoid overflow problems
long range = (long)aEnd - (long)aStart + 1;
// compute a fraction of the range, 0 <= frac < range
long fraction = (long)(range * generator.nextDouble());
int randomNumber = (int)(fraction + aStart);
System.out.println("Generated : " + randomNumber);
}
Puede utilizar este método general de cálculo de números aleatorios en cualquier rango.