将输入转换为多个int / vars

时间:2017-11-29 13:07:23

标签: java variables input int

我在制作整数/变量时遇到问题。 在知道有多少输入数字的同时,我可以制作如下代码:

Scanner in = new Scanner(System.in);
int[] vars = new int[8];
for(int z = 0; z < vars.length; z++)
  vars[z] = in.nextInt();

但问题是我不知道会有多少输入。 简而言之,任务是向买家推荐他们应该购买哪种产品,因此前两个输入数字将是有多少产品和有多少客户。接下来的X输入将是产品的价格,下一个Y输入将是客户拥有的金额。所有这一切都必须在同一个输入中。

很快:我需要创建一个自动命名输入到int的代码,具体取决于输入数量。

我可以根据线路命名输入吗? 例如:

input
5 5
1 5 8 11 12
10 5 9 12 13

编辑: 也有人(@Noixes / @Raju Sharma)给我一点建议我怎样才能开始管理这些输入以找到每个客户的最佳解决方案?所以每个客户都会购买他的钱或更少的物品(最接近他的钱)?一个客户购买物品后。该物品仍然以同样的价格出现在商店里。

2 个答案:

答案 0 :(得分:1)

我知道有人已经做到了这一点,但对初学者来说这有点复杂。所以我做了一个更长的版本,逐步计算。 :)

Scanner scan = new Scanner(System.in);
        String[] sizes = scan.nextLine().split(" ");

        // Define Arrays with actual lengths
        int[] productCosts = new int[Integer.parseInt(sizes[0])];
        int[] customerMoney = new int[Integer.parseInt(sizes[1])];

        // Get ProductCosts
        String[] inputProductCosts = scan.nextLine().split(" ");

        // Set Int-Array of ProductCosts
        for(int i = 0; i < productCosts.length; i++) {
            productCosts[i] = Integer.parseInt(inputProductCosts[i]);
        }

        // Get CustomerMoney
        String[] inputCustomerMoney = scan.nextLine().split(" ");

        // Set Int-Array of CustomerMoney
        for(int i = 0; i < customerMoney.length; i++) {
            customerMoney[i] = Integer.parseInt(inputCustomerMoney[i]);
        }

        scan.close();

答案 1 :(得分:0)

List<Integer> list = new ArrayList<>();

while(scanner.hasNextInt()){
    list.add(scanner.nextInt());
}