试图在闰年 class 中使用 int = input.nextInt 时扫描仪返回不需要的信息

Scanner returning unwanted information when trying to use int = input.nextInt in leap year class

我正在尝试编写一个程序来检查用户输入的年份是否为闰年。我认为下面的内容很好(尽管我希望它 return 到 System.out.print("Please enter a leap year:"); 当输入 <= 1582 年时,我不是确定该怎么做),但是当我输入大于 1582 的数字时,我得到以下信息:

run:
Please enter a leap year:1600
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=4][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E] is a leap year.
BUILD SUCCESSFUL (total time: 1 second)

我不明白为什么要打印所有这些,我只想要用户输入的数字。我是编程新手,所以这对我来说没有什么显而易见的。谢谢,这是我的代码:

import java.util.Scanner;

public class LeapYearCheck{
    
    public static void main(String args[]){
                
        System.out.print("Please enter a leap year:");
        Scanner input = new Scanner(System.in);
        int year = input.nextInt();
        
        if (year<=1582){
            System.out.println("An input of 1582 or less is not valid.");
        }    
                    
        else if (year%400==0){
            System.out.println(input + " is a leap year.");
            return;
        }
        
        else if (year%4==0 && year%100!=0){
            System.out.println(input + " is a leap year.");
            return;
        }
        
        else{
            System.out.println(input + " is not a leap year.");
        }
        
    }
    
}

System.out.println(year+"any extra string here"); 您的问题是您试图通过打印 input 来打印扫描仪本身。输入不是保存用户输入的变量,您定义 year 来保存该信息