gpt4 book ai didi

java - 数组长度;是正确的

转载 作者:行者123 更新时间:2023-12-01 14:51:24 24 4
gpt4 key购买 nike

大家好,我有一个有趣的问题。这是我学习面向对象编程的第二个学期。我的 Java 入门类(class)中的第一个项目涉及创建一个 Date 类,该类会计算从当年 1 月 1 日起经过的天数。我必须明显检查闰年并验证不正确的输入。我目前正在尝试检查用户输入的元素是否太少或太多(在一个字符串内)。这就是我所拥有的,但逻辑在某个地方有缺陷。当我输入的元素太少时,它会显示错误并再次读取。然后我输入太多,它会显示错误并再次读取。然后,当我输入三个元素时,它会显示上一个错误。在出现一个错误后,它不接受只输入了 3 个元素。请帮忙。

/* Accepts a string as an argument and splits it into 3 sections
* month,day, and year
*/
void setDateFields(String dateString){
String [] a = {null}; // Array created to hold dateString
a = dateString.split(" "); // Split dateString into three sections
// each ending with a white space

// While to check if user entered month day and year
while (a.length != 3){
if(a.length < 3)
System.out.println("Insufficient number of elements\n" +
"Enter a new date in the format of MM DD YYYY");
else if(a.length > 3)
System.out.println("Too many elements entered\n" +
"Enter a new date in the format of MM DD YYYY");
readDate();
a = dateString.split(" ");
}
monthText = a[0]; // The monthText is assigned the first index of the array
dayText = a[1]; // The dayText is assigned the second index of the array
yearText = a[2]; // The yearText is assigned the third index of the array4

numericMonth = Integer.valueOf(monthText);
numericDay = Integer.valueOf(dayText);
numericYear = Integer.valueOf(yearText);
}

最佳答案

您的函数 setDateFields 始终使用您传入的第一个字符串。您需要从用户处获取另一个字符串(我认为 readDate() 可以做到这一点,但它不能修改 setDateFields() 内的任何内容)。

您的主线代码应如下所示:

 do {
dateString = readDate();
} while(!checkDateString(dateString));

checkDateString() 应该只检查传入的字符串并返回 true 或 false。

关于java - 数组长度;是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805152/

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