我有一个 java 编程任务,你必须在一行中输入一个日期,它会根据日期为你提供一个命理(类似星座)的报告。假设用户将输入格式化的日期,用空格分隔。
我可以使用 in.nextInt() 检索输入的月、日和年。但是,我还必须检查用户是否为日期的每个部分使用了正确的分隔字符,这意味着我只需要检查用户是否使用了正斜杠。
在查看下面的代码时,我目前使用 charAt() 来查找分隔字符。问题是日期并不总是 14 个字符长。所以 10 / 17 / 2004 形式的日期有 14 个字符长,但 4 / 7 / 1992 的日期只有 12 个字符长,这意味着“slash1”不会总是在.charAt(3) 中,在后一种情况是 in.charAt(2)。
java 是否有允许类似 in.nextChar() 的方法?我知道它没有,但我怎么能在日期中找到下一个字符?
编辑:我最初忘记反映这一点,但我的教授说我们不允许使用 String.split() 方法,出于某种原因。问题是,我完全可以得到月份、日期和年份。我只需要检查该人是否使用正斜杠来分隔日期。如果输入破折号,则日期无效。
public void getDate()
{
char slash1, slash2;
do
{
System.out.print("Please enter your birth date (mm / dd / yyyy): ");
Scanner in = new Scanner(System.in);
String date = in.nextLine();
month = in.nextInt();
day = in.nextInt();
year = in.nextInt();
slash1 = date.charAt(3);
slash2 = date.charAt(8);
} while (validDate(slash1, slash2) == false);
calcNum();
}