因此,我尝试遍历具有类似问题的其他线程,但是我无法真正将它们与我当前的问题联系起来,因为其中大多数都提出了我在计算机科学1大学课程中目前还没有教过的解决方案
无论如何,如果您看一下我的代码,我试图获得用户输入,以继续执行代码并执行更多计算,或者停止程序。他们将输入y(是)以继续,或输入任何其他字符来终止程序。在我输入cardNumber的下一个值之前,一切似乎都可以进行。它使用我的服务类,进行数学运算和所有操作,然后询问是否要再次继续,但随后被告知。
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:44)
at java.base/java.lang.String.charAt(String.java:692)
at CreditCardDemo.main(CreditCardDemo.java:48)
现在,我像我说的那样浏览了其他线程,之前也曾见过类似的错误,但是我仍然不明白该错误告诉我什么或如何解决。我正在按照错误提示看待第48行,但我仍然不明白为什么会收到此错误,尤其是因为我使用了
repeat = input.charAt(0);
kb.nextLine();
以前在我的代码中,它工作正常...
真的很抱歉,如果我错过了一些线索,那是超级解释,对我有帮助,但是我找不到它(如果存在)。有人可以帮我吗?
public class CreditCardDemo
{
public static void main(String [] args)
{
int cardNumber;
String input;
char repeat;
Scanner kb = new Scanner(System.in);
CreditCard card1 = new CreditCard(67034014);
CreditCard card2 = new CreditCard();
System.out.print("Enter 8 digit credit card number: " + card1.getCardNumber());
card1.outputTest();
System.out.println();
System.out.println("Continue(y/n)?");
input = kb.nextLine();
repeat = input.charAt(0);
if (repeat != 'y')
{
System.exit(0);
}
do
{
System.out.print("Enter 8 digit credit card number: ");
card2.setCardNumber(kb.nextInt());
card2.outputTest();
System.out.println("Continue(y/n)?");
input = kb.nextLine();
repeat = input.charAt(0);
kb.nextLine();
}
while (repeat == 'y');
}
}