在Java中如何将一行整数作为输入?
我试图将下面这行代码作为Java的输入,但没有得到所需的输出。我想要数组列表中的所有整数 输入: 2个测试用例 5第一个测试用例数组的大小 1 2 3 5 4第一个测试用例数组中的元素 4第二个测试用例数组的大小 66 45 778 51第二个测试用例数组中的元素 代码: 使用sc.nextLine。它返回一个字符串,但通过在每个空格后拆分输入,您将得到一个包含所有整数的字符串[]。如果在它们上循环并将其转换为int,则可以将它们添加到列表中。 以下是我将如何做到这一点的示例:在Java中如何将一行整数作为输入?,java,Java,我试图将下面这行代码作为Java的输入,但没有得到所需的输出。我想要数组列表中的所有整数 输入: 2个测试用例 5第一个测试用例数组的大小 1 2 3 5 4第一个测试用例数组中的元素 4第二个测试用例数组的大小 66 45 778 51第二个测试用例数组中的元素 代码: 使用sc.nextLine。它返回一个字符串,但通过在每个空格后拆分输入,您将得到一个包含所有整数的字符串[]。如果在它们上循环并将其转换为int,则可以将它们添加到列表中。 以下是我将如何做到这一点的示例: import j
import java.util.ArrayList;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("How many numbers?");
int tc = Integer.valueOf(sc.nextLine());
for(int i = 0; i < tc; i++) {
System.out.println("Next number");
ArrayList<Integer> list = new ArrayList<Integer>();
String line = sc.nextLine();
String[] arr = line.split("\\s");
for(int j = 0; j < arr.length; j++){
list.add(Integer.parseInt(arr[j]));
}
System.out.print(list);
}
sc.close();
}
}
我不太确定你的问题是什么,但我想你只是对读一串数字123454感兴趣,并把它转换成一个数组[1,2,3,4,5,4]
String input= "1 2 3 4 5 4";
String[] stringList = input.split(" ");
int[] integerList = new int[stringList .length()];
for(int i = 0; i < listOfS.length(); i++) {
integerList[i] = Integer.parserInt(stringList[i]);
}
首先,必须使用input.split将字符串拆分为元素。这将在每个空格符号处拆分字符串输入。
然后必须将字符串[]转换为int[]。这是通过对字符串[]进行迭代并使用Integer.parseInt将其内容解析为整数来完成的。这样做是为了满足您的需要 导入java.util.ArrayList; 导入java.util.List; 导入java.util.Scanner; 公共班机{ 公共静态无效字符串[]args{ 扫描仪sc=新的扫描系统.in; int tc=sc.nextInt; 对于int i=0;i
下面是一个用于数字处理的简单解决方案:
List<Integer> list = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
int testCases = Integer.parseInt(scanner.nextLine());
for (int i = 0; i < testCases; i++) {
scanner.nextLine(); // skip "size" line as we don't use it in this solution
Arrays.stream(scanner.nextLine().trim().split("\\s+"))
.map(Integer::parseInt)
.forEach(list::add);
}
list.forEach(e -> System.out.printf("%d ", e));
输出
2 3 4 5 99 77
解释
数组。流…-从提供的数组的元素创建流
scanner.nextLine.trim.split\\s+-从扫描器中读取一行,在开始和结束处修剪空白,用一个或多个空白将其拆分为字符串[]
.mapInteger::parseInt-将每个字符串元素转换为整数
.forEachlist::add-将每个整数元素添加到列表中
请将您的问题包含在您的完整源代码中,这些源代码可以由其他人编译和测试。具体错误…?可能重复@khelwood my bad。刚刚编辑过。我的意思是,没有得到期望的输出。你得到的异常是什么?
String input= "1 2 3 4 5 4";
String[] stringList = input.split(" ");
int[] integerList = new int[stringList .length()];
for(int i = 0; i < listOfS.length(); i++) {
integerList[i] = Integer.parserInt(stringList[i]);
}
List<Integer> list = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
int testCases = Integer.parseInt(scanner.nextLine());
for (int i = 0; i < testCases; i++) {
scanner.nextLine(); // skip "size" line as we don't use it in this solution
Arrays.stream(scanner.nextLine().trim().split("\\s+"))
.map(Integer::parseInt)
.forEach(list::add);
}
list.forEach(e -> System.out.printf("%d ", e));