![](/img/trans.png)
[英]How to print 10 numbers per line using Math.random() in java?
[英]How do you print a specific line of text from a text file using math.random in Java?
嗨,我是Java的新手。 我需要編寫一個程序,讓精靈告訴別人他們的命運。 對於此程序,我從基於隨機數(來自math.random)的程序中接受輸入,並從返回的任意數字(1-100)中返回文本行。 有人可以幫助我解決這個問題嗎?(最好不要使用我不理解的專業課程)。 謝謝!
public void askFortune()
{
Scanner input = new Scanner("fortunes.txt");
double number = Math.random();
int num = (int) number * 100;
num += 1;
}
您可以嘗試迭代掃描儀,直到到達隨機行或到達掃描儀的末端為止:
public void askFortune() {
Scanner input = new Scanner("fortunes.txt");
double number = Math.random();
int num = (int) number * 100;
num += 1;
int counter = 0;
String line = "";
while (counter < number) {
if (!input.hasNextLine()) {
break;
}
line = input.nextLine();
++counter;
}
if (counter == number) {
System.out.println("Found line:\n" + line);
}
else {
System.out.println("Input file does not have enough lines");
}
}
這是Java IO的傳統方式。
public void askFortune() {
BufferedReader input = null;
double number = Math.random();
int num = (int) (number * 100);
num += 1;
int lineCount = 0;
String line = "";
try {
String foundLine = null;
input = new BufferedReader(
new InputStreamReader(new FileInputStream("fortunes.txt")));
while((line = input.readLine()) != null)
{
if(num == lineCount)
{
foundLine = line;
break;
}
lineCount++;
}
if(foundLine != null)
System.out.printf("Found line[%d]:%s\n", num, foundLine);
else
System.out.println("Wrong line number" + number + ":" + num);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
您必須檢查以下行,
int num = (int) number * 100;
這可能會導致操作數順序問題,如果您期望1到100作為行號的范圍,則可以更改它。
您可以使用
int num = (int) (number * 100);
要么
int num = (int) (Math.random() * 100) + 1;
代替
double number = Math.random();
int num = (int) (number * 100);
num += 1;
希望對您有幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.