Se produjo un problema similar al tirar de una cadena aleatoria de una matriz de cadenas. encontrado que esto funciona bastante bien, lo apliqué a una acción de botón para que con cada clic una aleatoria se extrae (me encontré con cualquier tamaño de la matriz hay múltiples instancias de la misma cadena que se dibujan consecutivamente a lo largo):
import java.util.*;
import java.util.Random.*;
class Countries {
public Random g2 = new Random();
public String[] list = new String[] { "Finland", "Russia",
"Latvia", "Lithuania", "Poland" };
String random2;
}
// Applied to a button action:
int INDEXn = g2.nextInt(list.length);
for (int i2 = 0; i2 < INDEXn; i2++) {
random2 = (String) (list[INDEXn]);
}
System.out.println(random2 + '\n');
El g2
aleatorio que está siendo utilizado por INDEXn
llama a un entero aleatorio, en este caso las cadenas definidas se convierten en valores enteros, de la matriz list
. For-loop se desplaza por la matriz String una vez. La cadena random2 está convirtiendo el entero elegido de INDEXn
a la variable de cadena apropiada en (list[INDEXn]
).
@roni: Burleigh Bear es correcto, el valor nunca será list.length. Según la documentación de Java: "Devuelve un valor int pseudoaleatorio, distribuido uniformemente entre 0 (incluido) y el valor especificado ** (exclusivo) **" – TaylorP
Gracias Señor, justo lo que necesitaba. –
@Burleigh Bear ¿Puede decirme por favor cómo puedo elegir una cadena aleatoria de esa matriz y también quiero otra cadena cada vez? Quiero decir, si no quiero repetir el valor de la cadena, qué modificación necesito en este código. – Kunu