hasnextdouble
时间: 2024-02-29 18:54:25 浏览: 9
"hasNextDouble" 是 Java 中的一个函数,用于检查 Scanner 对象的输入流中是否还有一个 double 类型的值。如果输入流中还有 double 类型的值,该函数返回 true,否则返回 false。该函数通常与 nextDouble 函数一起使用,以确保输入流中有 double 类型的值可供读取。
相关问题
package 第八章; import java.util.Scanner; public class MenuPrise { public static void main(String[] args) { // TODO 自动生成的方法存根 String menu = "北京烤鸭:189 元 西芹炒肉:12.9 元 酸菜鱼:69 元 铁板牛柳:32 元"; Scanner scanner = new Scanner(menu); double total = 0.0; while (scanner.hasNext()) { String item = scanner.next(); if (scanner.hasNextDouble()){ double price = scanner.nextDouble(); System.out.println(item + ": " + price + " 元"); total += price; } } System.out.println("菜单总价格为: " + total + " 元"); } }修复当前代码
该代码没有明显的错误,但是在输出菜单总价格时,应该将其放在while循环外面,避免重复输出。修复后的代码如下:
```java
package 第八章;
import java.util.Scanner;
public class MenuPrice {
public static void main(String[] args) {
String menu = "北京烤鸭:189 元 西芹炒肉:12.9 元 酸菜鱼:69 元 铁板牛柳:32 元";
Scanner scanner = new Scanner(menu);
double total = 0.0;
while (scanner.hasNext()) {
String item = scanner.next();
if (scanner.hasNextDouble()) {
double price = scanner.nextDouble();
System.out.println(item + ": " + price + " 元");
total += price;
}
}
System.out.println("菜单总价格为: " + total + " 元");
}
}
```
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.*; public class countprice { public static void main(String[] args) { try { File file = new File("D:\\java\\lab\\lab12\\src\\lab12\\list"); Scanner scanner = new Scanner(file); String line = scanner.next(); line.useDelimiter("[^0-9.]+"); double sum = 0; int i = 0; while(line.hasNextDouble()) { try{ double price = line.nextDouble(); sum = sum + price; i++; } catch(InputMismatchException exp){ String t = line.next(); } } double average = sum / i; System.out.println("平均价格为:" + average); } catch (FileNotFoundException e) { e.printStackTrace(); } } } 怎么debug
你可以使用集成开发环境(IDE)中的调试器来debug。在Eclipse中,你可以在代码中设置断点,然后运行程序时会停在断点处,你可以逐行执行代码并查看变量的值和程序流程。在你的代码中,你可以在以下行设置断点:
- 第7行:File file = new File("D:\\java\\lab\\lab12\\src\\lab12\\list");
- 第9行:String line = scanner.next();
- 第10行:line.useDelimiter("[^0-9.]+");
- 第12行:while(line.hasNextDouble()) {
然后你可以单步执行程序,查看变量的值和程序流程。如果发现问题,你可以在代码中进行修改并重新运行程序。