Sto*_*ght 5 java eclipse multithreading exception
我一直在为傻瓜阅读Java,我遇到了这个错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at TeamFrame.<init>(TeamFrame.java:18)
at ShowTeamFrame.main(ShowTeamFrame.java:7)
Run Code Online (Sandbox Code Playgroud)
这是代码:
import java.text.DecimalFormat;
public class Player {
private String name;
private double average;
public Player(String name, double average) {
this.name=name;
this.average=average;
}
public String getName() {
return name;
}
public double getAverage() {
return average;
}
public String getAverageString() {
DecimalFormat decFormat = new DecimalFormat();
decFormat.setMaximumIntegerDigits(0);
decFormat.setMaximumFractionDigits(3);
decFormat.setMinimumFractionDigits(3);
return decFormat.format(average);
}
}
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.GridLayout;
@SuppressWarnings("serial")
public class TeamFrame extends JFrame {
public TeamFrame() throws IOException {
Player player;
Scanner hankeesData =
new Scanner(new File("d:/eclipse/Workplace/10-02 book/Hankees.txt"));
for (int num = 1; num <= 9; num++) {
player = new Player(hankeesData.nextLine(),
hankeesData.nextDouble());
hankeesData.nextLine();
addPlayerInfo(player);
}
setTitle("The Hankees");
setLayout(new GridLayout(9, 2, 20, 3));
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
hankeesData.close();
}
void addPlayerInfo(Player player) {
add(new JLabel(" " + player.getName()));
add(new JLabel(player.getAverageString()));
}
}
import java.io.IOException;
class ShowTeamFrame {
public static void main(String args[])
throws IOException {
new TeamFrame();
}
}
Run Code Online (Sandbox Code Playgroud)
这是.txt文件:
Barry Burd
.101
Harriet Ritter
.200
Weelie J. Katz
.030
Harry "The Crazyman" Spoonswagler
.124
Filicia "Fishy" Katz
.075
Mia, Just "Mia"
.111
Jeremy Flooflong Jones
.102
I. M. D'Arthur
.001
Hugh R. DaReader
.212
Run Code Online (Sandbox Code Playgroud)
它直接来自本书的网站,所以我认为一定没有错误.
创建 hankeesData 后将其插入代码中:
hankeesData.useLocale(java.util.Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)
我注意到如果“.”你的程序可以工作。被替换为“,”,新代码现在告诉 Scanner 使用英语方法。
更新:如果您NoSuchElementException: No line found在最后一个输入行得到 a,那么这是因为您的最后一行没有 \n。hasNextLine()按照 HyperZ 答案末尾附近所示的方式使用。
| 归档时间: |
|
| 查看次数: |
776 次 |
| 最近记录: |