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
时间: 2024-02-14 18:14:26 浏览: 358
你可以使用集成开发环境(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()) {
然后你可以单步执行程序,查看变量的值和程序流程。如果发现问题,你可以在代码中进行修改并重新运行程序。
相关问题
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { try { File file = new File("input.txt"); Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }对以上JAVA代码进行逐句解释
这段Java代码的功能是从名为"input.txt"的文件中读取每一行文本并输出到控制台中。
1. `import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner;`
这行代码导入了所需的Java类库,包括用于文件操作和输入输出的类。
2. `public class ScannerDemo {`
这行代码定义了一个名为ScannerDemo的公共类。
3. `public static void main(String[] args) {`
这行代码定义了程序的主方法,是程序的入口点。
4. `try {`
这行代码标志着一个try块的开始,用于捕获可能发生的异常。
5. `File file = new File("input.txt");`
这行代码创建了一个File对象,表示名为"input.txt"的文件。
6. `Scanner scanner = new Scanner(file);`
这行代码创建了一个Scanner对象,用于从文件中读取数据。
7. `while (scanner.hasNextLine()) {`
这行代码开始一个while循环,用于逐行读取文件中的数据。
8. `String line = scanner.nextLine();`
这行代码读取文件中的一行数据,并将其存储在名为line的字符串变量中。
9. `System.out.println(line);`
这行代码将存储在line变量中的文本输出到控制台中。
10. `scanner.close();`
这行代码关闭Scanner对象,释放相关资源。
11. `catch (FileNotFoundException e) {`
这行代码标志着一个catch块的开始,用于捕获FileNotFoundException异常。
12. `e.printStackTrace();`
这行代码在控制台中打印异常的堆栈跟踪信息。
13. `catch (Exception e) {`
这行代码标志着一个catch块的开始,用于捕获其他可能发生的异常。
14. `e.printStackTrace();`
这行代码在控制台中打印异常的堆栈跟踪信息。
15. `}`
这行代码结束了try-catch块。
16. `}`
这行代码结束了main方法。
17. `}`
这行代码结束了ScannerDemo类。
解释这段代码package question7; import java.io.DataOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashSet; import java.util.Scanner; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.Random; public class Test { public static void main(String args[]){ Test test=new Test(); Scanner input=new Scanner(System.in); String s1=new String(); s1=input.nextLine(); String[] s2 = s1.split(" "); int[] l=new int[s2.length]; for(int i=0 ; i<s2.length;i++){ l[i]=Integer.parseInt(s2[i]); } test.write("test.txt", l); int[] readlist=test.read("test.txt",l); isPrime isprime=new isPrime(readlist); for(int i=1;i<=10;i++){ new Thread(isprime).start(); } try { Thread.sleep(1000); //1000 毫秒,也就是1秒. } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } Set<Integer> set=new HashSet(); set=isprime.getSet(); System.out.println("素数set"+set); System.out.println("输入查询数字"); int num=input.nextInt(); if(set.contains(num)){ System.out.println(num+"是素数"); } else System.out.println(num+"不是是素数"); } public void write(String filename,int a[]){ File file = new File(filename); try { PrintWriter output=new PrintWriter(file); for(int i=0;i<a.length;i++){ output.print(a[i]+" "); } output.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int[] read(String filename,int a[]){ File file=new File(filename); try { Scanner input=new Scanner(file); int i=0; while(input.hasNext()){ a[i]=input.nextInt(); i++; } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return a; } }
这段代码是一个 Java 程序,主要功能是读取用户输入的一串整数,将其写入文件 test.txt,然后又从这个文件中读取整数列表,并查找出其中的素数并存储在一个 HashSet 中,最后判断用户输入的数字是否为素数。具体实现包括定义了一个 isPrime 类用于判断一个数字是否为素数,使用了多线程来处理多个数字的判断,使用了 HashSet 来存储素数列表。
阅读全文