2015-05-26 3 views
-4

Я новичок в Java, и это мой первый пост.Java - печать случайных слов из текстового файла

Я хочу создать программу, которая будет печатать на экране определенное пользователем количество слов, которые случайным образом вытягиваются из внешнего файла Notepad, содержащего несколько страниц текста. Грамматика не имеет значения, но каждое слово должно быть в равной степени выбрано (способ контролировать повторение слов тоже будет приятным, но не существенным).

В настоящее время у меня есть сканер, предлагающий пользователю ввести число, которое хранится как переменная «число», определяющая, сколько слов нужно тянуть. Затем программа должна прочитать текстовый файл (или загрузить его содержимое в какой-то список или массив?) И выбрать случайное слово по крайней мере одной длины символа. Повторите цикл «число» раз и отобразите всю полученную строку слов.

Детали, в которых мне нужна помощь, являются: 1) передача программе доступа к файлу; 2) убедитесь, что слова выбраны случайным образом. Как мне это сделать?

Большое спасибо за внимание!

/* 
* Program description: Pulls a user-defined number of random words from an 
* external text file and prints the resulting text string on screen. 
* JDK version 1.7.0_60 
*/ 

import java.util.Scanner; 

public class RandomTextGen { 

    public static void main(String[] args) { 

     Scanner keyboard = new Scanner (System.in); 
     System.out.print("Enter number of words to pull: "); 
     int number = keyboard.nextInt(); 

     // Load text file 

     // Create loop to pull number of words in random order 

     System.out.println(""); //Output results 


    } 

} 
+1

отправьте свой код до сих пор .... –

+0

Это поможет решить вашу проблему: http://stackoverflow.com/questions/12028205/randomly- select-a-word-from-a-text-file – JonasCz

+0

Извините за задержку, это личный проект в мое свободное время ... спасибо за помощь до сих пор. Как я уже сказал, я очень новичок в Java, поэтому я не совсем понимаю все, что происходит с кодом в http://stackoverflow.com/questions/136474/best-way-to-pick-a-random -subset-from-a-collection. Мне непонятно, как я включил бы свой внешний текстовый файл в этот код, или же он дает мне возможность выбирать, сколько слов тянуть, не меняя код каждый раз. Извините, что он плотный, но если кто-то может сломать его и объяснить, что происходит, это было бы здорово. , , Благодарю. –

ответ

2

Прочитайте файл и сохранить его в List

FileInputStream in = new FileInputStream("yourfile.txt"); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

String strLine; 
List<String> filearray = new ArrayList<String>(); 

while ((strLine = br.readLine()) != null) { 

    for (int j = 0; j < myarray.length; j++){ 
     // get the whole line and split into words 
     String[] s = br.readLine().split(" "); 
     // put each word in the list 
     for (String s : strings) 
      filearray.add(); 
    } 
} 
in.close(); 

Получить List.size() и выбрать случайное число

int size = filearray.size(); 
Random rn = new Random(); 
int randomWord = rn.nextInt(size); 

И распечатать его

System.out.println("Random word is: " + filearray.get(randomWord)); 

ПРИМЕЧАНИЕ: повторите это столько раз, сколько хотите ...

+1

вы забыли добавить тег «домашняя работа» на свой пост ;-) – Marged

Смежные вопросы