代码从文本文件中读取,并在txt中全部1000个单词变为真。然后它读取每个单词计算ist lenght并从该长度得到随机数(比如lenght是4,随机将是2)。然后用“*”替换该随机数字符。这将在以后用作主程序的样本。
问题是我多次得到同样的结果。
TXT:
public class random_2 {
public static void main(String[] args) {
int dolzina = 0;
Object s;
String outputFile = "random_2.txt";
ArrayList<String> list = new ArrayList();
try {
File file = new File("random1.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String vrstica;
while ((vrstica = bufferedReader.readLine()) != null) {
list.add(vrstica);
// dolzina=list.size();
// System.out.println(dolzina);
}
FileWriter fileWriter = new FileWriter(outputFile);
PrintWriter out = new PrintWriter(fileWriter);
for (int idx = 0; idx <= list.size(); ++idx) {
String test=list.get(idx);
dolzina=test.length();
Random randomGenerator = new Random();
for (int i = 0; i<= dolzina; ++i) {
int randomInt = randomGenerator.nextInt(dolzina);
StringBuilder beseda = new StringBuilder(test);
beseda.setCharAt(randomInt, '*');
System.out.println(beseda);
}
}
System.out.println("Done.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
您必须使用构造函数
Random(long seed)
可以将随机生成器视为具有预定义列表编号的对象,并在每次调用时将下一个数字返回到列表中。
使用Random(长种子)将第一个索引作为列表开始。
在您的代码中,您始终在位置0开始随机列表。
具体地说,我们将'seed'参数用于以毫秒为单位的实际时间。因此,每次运行程序时,都会使用不同的起始索引初始化随机生成器,每次运行时都会得到不同的结果。