rango personas numeros numero nombres letras generar generador entero dentro arreglos aleatorios aleatorio aleatorias java arrays random words

personas - Generando palabras aleatorias en Java?



generar string java (6)

Escribí un programa que puede ordenar palabras y determinar cualquier anagrama. Quiero generar una matriz de cadenas aleatorias para poder probar el tiempo de ejecución de mi método.

public static String[] generateRandomWords(int numberOfWords){ String[] randomStrings = new String[numberOfWords]; Random random = Random(); return null; }

(trozo de método)

Solo quiero palabras minúsculas de longitud 1-10. Leí algo acerca de generar números aleatorios, luego lanzar a char o algo así, pero no entendí del todo. Si alguien puede mostrarme cómo generar palabras aleatorias, entonces podría fácilmente usar un ciclo for para insertar las palabras en la matriz. ¡Gracias!


¿Necesita palabras en inglés reales, o solo cadenas aleatorias que solo contengan letras az?

Si necesita palabras en inglés reales, la única forma de hacerlo es usar un diccionario y seleccionar palabras al azar.

Si no necesita palabras en inglés, entonces algo como esto va a hacer:

public static String[] generateRandomWords(int numberOfWords) { String[] randomStrings = new String[numberOfWords]; Random random = new Random(); for(int i = 0; i < numberOfWords; i++) { char[] word = new char[random.nextInt(8)+3]; // words of length 3 through 10. (1 and 2 letter words are boring.) for(int j = 0; j < word.length; j++) { word[j] = (char)(''a'' + random.nextInt(26)); } randomStrings[i] = new String(word); } return randomStrings; }



Puede llamar a este método para cada palabra que desee generar. Tenga en cuenta que la probabilidad de generar anagramas debería ser relativamente baja.

String generateRandomWord(int wordLength) { Random r = new Random(); // Intialize a Random Number Generator with SysTime as the seed StringBuilder sb = new StringBuilder(wordLength); for(int i = 0; i < wordLength; i++) { // For each letter in the word char tmp = ''a'' + r.nextInt(''z'' - ''a''); // Generate a letter between a and z sb.append(tmp); // Add it to the String } return sb.toString(); }


Si desea generar palabras aleatorias de una longitud determinada, necesitará un algoritmo para determinar si una cadena dada es una palabra (difícil) o acceder a una lista de palabras de todas las palabras en un idioma determinado (fácil). Si ayuda, aquí hay una lista de cada palabra en el diccionario de Scrabble .

Una vez que tenga una lista de todas las palabras en un idioma, puede cargar esas palabras en una ArrayList u otra estructura lineal. Luego puede generar un índice aleatorio en esa lista para obtener la palabra aleatoria.


Si quieres palabras aleatorias sin usar un diccionario ...

  1. Haga una lista de todas las letras que desee en sus palabras
  2. Genere un índice aleatorio para seleccionar una letra de la lista
  3. Repita hasta que tenga la longitud de palabra deseada

Repita estos pasos para la cantidad de palabras que desea generar.