Java - 从文本文件中打印随机单词

时间:2015-05-26 21:47:39

标签: java random words

我是Java的新手,这是我的第一篇文章。

我想创建一个程序,在屏幕上打印用户指定的单词数,这些单词是从包含多页文本的外部记事本文件中随机抽取的。语法并不重要,但每个单词应该同样可能被选中(一种控制单词重复的方法也会很好,但不是必需的)。

目前,我有Scanner提示用户输入一个数字,存储为变量" number"确定要拉多少个单词。程序应该读取文本文件(或将其内容加载到某种列表或数组?)并选择至少一个字符长度的随机单词。重复循环"数字"时间并显示整个结果字符串。

我需要帮助的部分是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 :(得分: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));

注意:根据需要多次重复此操作......