You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入java.util.Scanner出错,NetBeans报非法表达式等错误

解决Java代码中的"illegal start of expression"和"not a statement"错误

嘿,刚学编程遇到这种语法错误太正常了,你这是踩了几个Java入门常见的语法坑,我来帮你一步步修正~

错误原因拆解

  • import语句位置不对:Java规定import必须放在所有类定义的外面,不能塞到方法(比如main)里面,不然编译器根本认不出它。
  • 方法内部不能定义类:你把ProgramName类直接写在JavaApplication2的main方法里了,这完全不符合Java的语法规则,编译器会直接报错“非法表达式开始”。
  • 拼写小错误:代码里new Scanne...少了个字母r,应该是new Scanner(System.in)。

修正后的代码

把结构调整成Java要求的正确格式,这里给你两种方案:

方案1:保留单个类结构(适合入门练习)

import java.util.Scanner; // 把import放在最开头

public class JavaApplication2 {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in); // 修正拼写错误
        // 这里可以继续写你的业务逻辑,比如读取输入的代码
        // 示例:
        System.out.println("请输入内容:");
        String input = reader.nextLine();
        System.out.println("你输入的是:" + input);
        reader.close(); // 记得关闭Scanner
    }
}

方案2:拆分两个独立类(如果确实需要两个类)

如果你原本想写两个类,那要把它们放在同一个文件里(注意只有一个类用public修饰,文件名要和这个public类一致),或者分成两个单独的.java文件:

// JavaApplication2.java 文件
public class JavaApplication2 {
    public static void main(String[] args) {
        // 调用另一个类的方法
        ProgramName.run();
    }
}

// ProgramName.java 文件(或者和上面放在同一个文件里,去掉public)
import java.util.Scanner;

class ProgramName {
    public static void run() {
        Scanner reader = new Scanner(System.in);
        // 这里写你的逻辑
        reader.close();
    }
}

小提示

刚学Java一定要注意代码的结构层级:import → public class → 类内部的方法/变量,别把层级搞混啦,多写几次就熟练了~

内容的提问来源于stack exchange,提问作者user3403745

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:08:52