如何查看某个值是否在数组中?

时间:2013-12-26 13:18:19

标签: java arrays runtime-error

我是个初学者。

我试图找出某个值是否在数组中。即看是否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);

    }
}

1 个答案:

答案 0 :(得分:5)

  1. 你的缩进非常糟糕,改善它。
  2. date=dt.split("/"); - 您认为date中至少会有3个字符串,这是一种坏习惯。
  3. for(i=0;mnth!=month1[i];i++){}可能会导致ArrayIndexOutOfBoundsException
  4. Boolean x = ...非常令人困惑,我建议你重新考虑写一下。另外,为什么Boolean而不是primitive boolean