我在Java中使用TreeMap结构。键中包含字符“:”,值是事物列表。问题是当我调试程序时停止在这一行(不再工作......)
if (!string.isEmpty()) {
**string = jin.nextLine();**
}
我真的不知道问题出在哪里。下面是我的代码。 Data(我在其中保存日期变量)和 ListOfBills(在其中我保存 Bill 类的对象列表)是另外两个类。
public void read(InputStream in) throws ParseException {
Scanner jin = new Scanner(in);
TreeMap<Date, ListOfBills> tree = new TreeMap<Date, ListOfBills>();
ListOfBills obBill = new ListOfBills();
Data data;
String string = jin.nextLine();
while (jin.hasNextLine()) {
if (string.contains(":")) {
data = new Data((string));
string = jin.nextLine();
while (!string.contains(":")) {
String[] parts1 = string.split(" ");
obBill.listOfBills.add(new Bill(Integer.parseInt(parts1[0]), Float.parseFloat(parts1[2]),
parts1[3], Float.parseFloat(parts1[5])));
if (!string.isEmpty()) {
string = jin.nextLine();
}
}
tree.put(data.date1, obBill);
}
}
for (Date date : tree.keySet()) {
System.out.println(date + "\n");
}
jin.close();
}
最佳答案
它一直处于阻塞状态,因为它正在等待输入...... 如果您从控制台进行测试,则需要在标准输入中输入一个值...
希望对你有帮助
关于java - 扫描仪 hasNextLine() 无法访问 Java 中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934296/