无法使扫描程序类在Java中工作

时间:2017-12-02 20:48:06

标签: java processing

我正在尝试将程序放在一起,读取用户输入的整数。我一直在阅读有关扫描程序类的内容,这似乎是在java中最常用的方法。但是,当我在网站the examples上复制+粘贴like this one时,我遇到了一些我不知道如何修复的错误。这是令人沮丧的,因为发布的所有内容应该是完成的代码,应该没有问题!

一些应该有效的代码示例:

import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] arguments){
        Scanner input = new Scanner(System.in);

        String username;
        double age;
        String gender;
        String marital_status;
        int telephone_number;

        // Allows a person to enter his/her name   
        Scanner one = new Scanner(System.in);
        System.out.println("Enter Name:" );  
        username = one.next();
        System.out.println("Name accepted " + username);

        // Allows a person to enter his/her age   
        Scanner two = new Scanner(System.in);
        System.out.println("Enter Age:" );  
        age = two.nextDouble();
        System.out.println("Age accepted " + age);

        // Allows a person to enter his/her gender  
        Scanner three = new Scanner(System.in);
        System.out.println("Enter Gender:" );  
        gender = three.next();
        System.out.println("Gender accepted " + gender);

        // Allows a person to enter his/her marital status
        Scanner four = new Scanner(System.in);
        System.out.println("Enter Marital status:" );  
        marital_status = four.next();
        System.out.println("Marital status accepted " + marital_status);

        // Allows a person to enter his/her telephone number
        Scanner five = new Scanner(System.in);
        System.out.println("Enter Telephone number:" );  
        telephone_number = five.nextInt();
        System.out.println("Telephone number accepted " + telephone_number);
    }
}

而不是程序运行,它给了我两个错误。

public class ScannerDemo {行上,它给了我这个错误:

  

本地类ScannerDemo的非法修饰符;只允许抽象或最终

在下一行public static void main(String[] arguments){我收到此错误:

  

方法main不能声明为static;静态方法只能在静态或顶级类型中声明。

我已尝试使用许多不同形式的扫描仪,这些扫描仪应该已经准备就绪并且每次都会出错。我究竟做错了什么?我该如何解决?

我正在使用Processing 3。

3 个答案:

答案 0 :(得分:0)

请理解Java和Processing之间的区别。处理是它自己的语言和编辑器,它有自己的语法规则,你不能只是复制粘贴随机Java代码并期望它能够工作。您必须了解Processing的工作原理,然后以处理中的方式添加代码。

假设您正在使用Processing编辑器,那么您的主草图文件不应该只包含一个类,它绝对不应该包含main()方法。它应该包含setup()draw()函数。

如果您真的想使用某个类,那么请删除您的main()方法,将您的逻辑封装在类中的函数中,然后添加setup()draw()函数使用该类。

或者更好的是,停止使用课程,只需在处理代码中使用Scanner

如果仍然无法使其发挥作用,请在新问题帖子中发布MCVE,我们将从那里开始。祝你好运。

答案 1 :(得分:-1)

我相信@Hovercraft已经提到你只需要在一个名为ScannerDemo.java的文件中使用这段代码,猜测你有不同的文件名。

答案 2 :(得分:-1)

您的班级名称和文件名必须相同。这是第一次错误的决定。

public static void main(String[] arguments){

因为第一次错误而无法正常工作。