Java 与do while和ArrayList一起出现问题
我的代码有问题,为什么当我启动一个程序时,它总是向我发送一个错误Java 与do while和ArrayList一起出现问题,java,arraylist,Java,Arraylist,我的代码有问题,为什么当我启动一个程序时,它总是向我发送一个错误 Import java.util.*; public class main { ArrayList<String> birth = new ArrayList<String>(); Scanner scn = new Scanner(System.in); public main { String input = "", strDay = &quo
Import java.util.*;
public class main {
ArrayList<String> birth = new ArrayList<String>();
Scanner scn = new Scanner(System.in);
public main {
String input = "", strDay = "", strMonth = "", strYear = "";
int day = 0, month = 0, year = 0;
boolean invalid = true;
System.out.println("Masukkan tanggal lahir Anda (ddmmyyyy): ");
while (invalid) {
do {
input = scn.next();
if (input.length() == "0") {
birth.add(input);
}
strDay = input.substring(0, 2);
strMonth = input.substring(2, 4);
strYear = input.substring(4, 8);
day = Integer.parseInt(strDay);
month = Integer.parseInt(strMonth);
year = Integer.parseInt(strYear);
if ((month == 1 && day > 31) || (month == 3 && day > 31) || (month == 5 && day > 31) || (month == 7 && day > 31) || (month == 8 && day > 31) || (month == 10 && day > 31) || (month == 12 && day > 31)) {
System.out.println("Hari di bulan " + month + " tidak boleh lebih besar dari " + 31);
continue;
}
if ((month == 4 && day > 30) || (month == 6 && day > 30) || (month == 9 && day > 30) || (month == 11 && day > 30)) {
System.out.println("Hari di bulan " + month + " tidak boleh lebih besar dari " + 30);
continue;
}
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) && day > 29) {
System.out.println("Hari di bulan " + month + " tahun kabisat tidak boleh lebih besar dari " + 29);
continue;
}
if (month > 12) {
System.out.println("Bulan tidak boleh lebih besar dari " + 13);
continue;
}
} while (!input.equals("0"));
invalid = false;
}
}
}
您的错误如下:
if (input.length() == "0") {
birth.add(input);
}
方法length()。也许你的意思是:
if (!(input.length() == 0)) {
birth.add(input);
}
请注意非操作员欢迎使用SO。请阅读并添加更多示例,说明您提供了哪些输入,您期望发生什么,以及您得到了什么(如果您得到异常,请将整个stacktraces格式化)。除此之外,您是否已经使用调试器逐步完成了代码?最后,还有一些事情是不需要或不受欢迎的,所以:“我的名字是凯文”-谢谢你提供的信息,但没有必要,“你能尽快帮我吗?”-不太可能提高你的胜算,只是去掉这个。)还有一件事:“它总是向我发送一个错误”-如果你描述什么错误以及从哪里得到它,那就好了。对于非英语消息,我们必须猜测什么会被视为“错误”。首先,我希望input.length()==“0”
编译失败-String.length()
返回一个整数,而“0”
是一个字符串……检查可以是input.length()!=0
或input.length()>0
@RobCo是的,可以。但是使用相同的代码更好地指出错误。
if (!(input.length() == 0)) {
birth.add(input);
}