gpt4 book ai didi

java - 将整数作为控制台的输入并将它们存储在数组中

转载 作者:行者123 更新时间:2023-11-29 05:14:00 25 4
gpt4 key购买 nike

当我尝试编写以下代码时,计算机需要多个输入。但我想要的是它应该只接受一行作为输入并将该行中的所有整数保存在一个数组中。你能帮我解决这个问题吗?

import java.util.*;

class InputInteger{

public static void main(String args[]){
Scanner input=new Scanner(System.in);
int[] array=new int[20];
int i=0;
while(input.hasNext()){
array[i]=input.nextInt();
i++;
}
input.close();
}
}

最佳答案

But what I want is it should take only one line as an input and save all the integers in that line in an array.

首先,我强烈建议您不要close() 您围绕System.in 创建的Scanner。这是全局的,close()ing 可能会在以后导致您出现各种问题(因为您无法重新打开它)。至于读取单行输入并将 int 值拆分为数组,您可以使用 Scanner.nextLine()和类似的东西

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
if (input.hasNextLine()) {
String line = input.nextLine();
String[] arr = line.split("\\s+");
int[] vals = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
vals[i] = Integer.parseInt(arr[i]);
}
System.out.println(Arrays.toString(vals));
}
}

编辑 根据您的评论,

String line = "1 31 41 51";
String[] arr = line.split("\\s+");
int[] vals = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
vals[i] = Integer.parseInt(arr[i]);
}
System.out.println(Arrays.toString(vals));

输出是

[1, 31, 41, 51]

如果你需要处理错误,我建议你使用List这样的

List<Integer> al = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
try {
al.add(Integer.parseInt(arr[i]));
} catch (NumberFormatException nfe) {
}
}
// You could now print the List
System.out.println(al);
// And if you must have an `int[]` copy it like.
int[] vals = new int[al.size()];
for (int i = 0; i < al.size(); i++) {
vals[i] = al.get(i);
}
System.out.println(Arrays.toString(vals));

关于java - 将整数作为控制台的输入并将它们存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241097/

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