首页 > 解决方案 > java - 如何从java中的一个输入提示将多个值放入一个数组中?

问题描述

我在让我的程序一次接受信用卡号码并将每个号码存储在数组中时遇到问题。每当我输入值时,我都会得到“java.lang.NumberFormatException:对于输入字符串:”“”我需要您的帮助,因为我是 JAVA 新手。

import java.util.Scanner;
import javax.swing.*;
import java.util.ArrayList;
public class Credit_Card_eval

{   
    public static void main(String[] args) {


      int Sum=0;
      int Count=0;
      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter your credit card number");
      String input = sc.nextLine();
      int[]CC =new int[15];
      String[] Creditstring = input.split("");

       for (int i=0;i<=15;i++){
           Count=Count++;
           CC[i]= Integer.parseInt(Creditstring[i]);
        }
        for (int i=0; i<15;i++){
            if(CC[0]==4)
            System.out.println("Your Card is a Visa Card");
            else if (CC[0]==5)
             System.out.println("Your Card is a Master Card");
            else if (CC[0]==3 && CC[1]==7)
             System.out.println("Your Card is American_Express");
            else if (CC[0]==6)
             System.out.println("Your Card is a Discover Card");
             else
             System.out.println("Your Card is unknown");
            }

      sc.close();


}
}

标签: javaarrays

解决方案


您可能会遇到问题(通常),因为信用卡号太大而无法放入 int。

整数只有 32 位,所以它们最多只能达到 ~2^31

而 16 位数字(非常粗略)在 2^50 - 2^52 的范围内

尝试使用 long(64 位)而不是 int。


推荐阅读