导入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
相关产品推荐
相关产品推荐

