我是个初学者。
我试图找出某个值是否在数组中。即看是否mnth在month1 []。
为什么此代码显示运行时异常:
ArrayIndexOutOfBoundsException.
如何避免此异常?
如何查找某个值是否在数组中?与for循环我试图这样做。
请告诉我我错在哪里。提前致谢。
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
public static void main(String[] args) throws java.lang.Exception {
Scanner scanner = new Scanner(System.in);
String dt = scanner.nextLine();
String[] date = new String[3];
date = dt.split("/");
System.out.println(date[0]);
int yr = Integer.valueOf(date[0]);
int mnth = Integer.valueOf(date[1]);
int day = Integer.valueOf(date[2]);
int[] month1 = { 1, 3, 5, 7, 8, 10, 12 };
int i;
boolean x=false;
for (i = 0; mnth != month1[i]&&i<=2&&x==false; i++) {
x = yr % 2 == 0 && mnth == 2 ? day <= 29: mnth == 2 ? day <= 28 : mnth == month[i] ? day <= 31 : day <= 30;
}
System.out.println("" + x);
}
}
答案 0 :(得分:5)
date=dt.split("/");
- 您认为date
中至少会有3个字符串,这是一种坏习惯。for(i=0;mnth!=month1[i];i++){}
可能会导致ArrayIndexOutOfBoundsException
。Boolean x = ...
非常令人困惑,我建议你重新考虑写一下。另外,为什么Boolean
而不是primitive boolean
?