试图在闰年 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
来保存该信息
我正在尝试编写一个程序来检查用户输入的年份是否为闰年。我认为下面的内容很好(尽管我希望它 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
来保存该信息