[英]How to read N number of lines from a file in java randomly
我對Java還是很陌生,所以如果我做錯了,請忍受。 我用Java編寫了一個代碼,該代碼從Java文件中讀取N行,並將其放入double數組中,然后將其打印出來;
ArrayList<Double> numbers = new ArrayList<Double>();
Scanner read = new Scanner(new File("numberfile"));
int counter = 0;
while(read.hasNextLine() && counter < 10)
{
System.out.println(read);
counter++;
}
該文件包含一堆從1到100的數字。
目前,如果我告訴我讀取前10個數字,我的代碼會打印出所有這些數字[1、2、3、4、5、6、7、8、9、10]。 我現在想做的是以隨機順序打印這些數字,例如[2、1、6、8、9、3、7、10、3、5]。
而且,如果可能的話,我想編寫一個代碼,隨機N次打印出前10個數字。 例如,以隨機順序打印出前10個數字50次。
感謝您的幫助,如果不清楚,請告訴我。
您可以將它們放入List
,然后使用Collections.shuffle方法。
將數字讀取到array
,然后將java.util.Random讀入數組並按需要打印(使用嵌套循環,每次訪問打印“ x”次)。 如果只想隨機打印,則可以使用Collections.shuffle進行隨機播放,然后簡單地遍歷結構並打印。
好吧,如果您的文件足夠小,則使用Java 7很容易:
final Path thefile = Paths.get("whereyourfileis");
final List<String> lines = Files.readAllLines(thefile, StandardCharsets.UTF_8);
Collections.shuffle(lines);
// lines.sublist(0, 10) --> done
在將文件讀取到數組(或列表)時,應將數字存儲起來,然后A)隨機整理數組並打印出來,或者B)從數組中隨機選擇數字。 如果您不關心重復的數字(例如[2,1,6,1,1,1,1,2]),則可以使用Math.Random()隨機選擇10個項目。 否則,請按如下方式讀入List(您已經有一個名為Numbers的ArrayList):
while(read.hasNextLine() && counter < 10)
{
numbers.add(read.nextDouble());
counter++;
}
for (int n = 0; n < 50; n++) {
Collections.shuffle(numbers);
for (int i = 0; i < numbers.size(); i++) {
System.out.println(numbers.get(i));
}
System.out.println();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.