gpt4 book ai didi

java - 尝试从控制台输入读取日期时出现 NumberFormatException

转载 作者:行者123 更新时间:2023-12-02 11:31:46 28 4
gpt4 key购买 nike

所以我试图从日期列表中查找最新日期,但我不断收到 NumberFormatException。有什么办法可以解决这个问题吗?

import java.util.*;

public class Date
{
private String date;
private int day;
private int month;
private int year;

public Date(String date)
{

String [] newDate = date.split(" ");

this.day = Integer.parseInt(newDate[0]);
this.month = Integer.parseInt(newDate[1]);
this.year = Integer.parseInt(newDate[2]);
}

public boolean isOnOrAfter(Date other)
{
if(this.day < other.day)
{
return true;
}
else if(this.day == other.day && this.month < other.month)
{
return true;
}
else if(this.day == other.day && this.month == other.month && this.year < other.year)
{
return true;
}
return false;
}

public String toString()
{
return day + "/" + month + "/" + year;
}

public static void main(String [] args)
{
Scanner in = new Scanner(System.in);
System.out.print("How many dates: ");

int num = in.nextInt();

System.out.println("Enter " + num + " dates: ");

String [] dates = new String[num];

for(int i = 0; i < dates.length; i++)
{
dates[i] = in.nextLine();
}

Date latest = new Date(dates[0]);

for(int i = 0; i < dates.length; i++)
{
Date newDates = new Date(dates[i]);
if(latest.isOnOrAfter(newDates))
{
latest = newDates;
}
}
System.out.println(latest);
}
}

我认为这只是一个小问题,但我似乎找不到它。提前致谢。

我有一个检查最新日期的方法,代码的逻辑对我来说似乎很好,如果您发现逻辑有任何问题,请告诉我。

日期将一次一行输入,例如:

1 1 1890
1 1 2000
2 1 2000
30 12 1999

输出应为 2/1/2000。

最佳答案

这里出现NumberFormatException有两个原因:

1.您输入的日、月和年之间有多个空格。
2. Scanner 的 nextInt 不消耗换行符。因此,您需要在其后包含一个虚拟 nextLine 。您可以阅读更多相关信息here .

int num = in.nextInt();
in.nextLine(); //To consume the new line after entering the number of dates
System.out.println("Enter " + num + " dates: ");

String [] dates = new String[num];
...

关于java - 尝试从控制台输入读取日期时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49241331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com