gpt4 book ai didi

java - 空指针异常变通

转载 作者:行者123 更新时间:2023-11-29 03:00:23 24 4
gpt4 key购买 nike

<分区>

我搜索了很多,我对 java 很陌生,所以我正在尝试创建一个基本程序来执行以下操作

用户将插入出生日期或星座

然后该程序会告诉用户他们的星座是什么或特定星座经历的日期范围。

我目前正处于这条线...“ 我们的日期.getIndexByDate(myDay);“给出空指针异常。同时,ourDate 调用的方法也是如此。

java.lang.NullPointerException
at Dates.getIndexByDate(Dates.java:68)
at Dates.main(Dates.java:49)

我有以下代码:

import java.util.ArrayList;
import java.util.Scanner;

public class Dates {

private static ArrayList<Double> zodiacDates;
private static ArrayList<String> zodiac;

public static void main(String[] args) {
ArrayList<Double> zodiacDates = new ArrayList<Double>()
{{
add(1.19);
add(2.18);
add(3.20);
add(4.21);
add(5.20);
add(6.20);
add(7.22);
add(8.22);
add(9.22);
add(10.22);
add(11.21);
add(12.21);
}};
ArrayList<String> zodiac = new ArrayList<String>()
{{
add("Capricorn");
add("Aquarius");
add("Pisces");
add("Aries");
add("Taurus");
add("Gemini");
add("Cancer");
add("Leo");
add("Virgo");
add("Libra");
add("Scorpio");
add("Sagittarius");
}};
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter your birthdate in the form of a double");
Double myDay = keyboard.nextDouble();
System.out.println("Enter your horoscope sign if you know it");
String ourSign = keyboard.nextLine();
Dates ourDate = new Dates();
System.out.println("Enter your birthdate in the form of a double");
ourDate.getIndexByDate(myDay);
ourDate.getIndexBySign(ourSign);
}

public int getIndexBySign(String pName)
{
for (int w = 0; w < zodiac.size(); w++)
{
String sign = zodiac.get(w);
if (pName.equals(sign))
{
return w;
}
}

return -1;
}

public int getIndexByDate(Double myDay)
{
for (int i = 0; i <= zodiacDates.size(); i++)
{
Double variable = zodiacDates.get(i);
if ((myDay <= variable && myDay > zodiacDates.get(i-1)) || (myDay < 1.19 || myDay >= 12.22 ) )
{
return i;
}
}
return -1;
}
}

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