如何从Java的单行输入中读取多个Integer值?

问题描述 投票:31回答:17

我正在开发程序,希望在出现提示时允许用户输入多个整数。我尝试使用扫描仪,但发现它仅存储用户输入的第一个整数。例如:

输入多个整数:1 3 5

扫描仪将仅获取第一个整数1。是否可以从一行中获取所有3个不同的整数,并在以后使用它们?这些整数是我需要根据用户输入操作的链表中数据的位置。我无法发布源代码,但我想知道是否可行。

java input java.util.scanner
17个回答
30
投票
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String lines = br.readLine(); String[] strs = lines.trim().split("\\s+"); for (int i = 0; i < strs.length; i++) { a[i] = Integer.parseInt(strs[i]); }

10
投票
public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { if (in.hasNextInt()) System.out.println(in.nextInt()); else in.next(); } }

默认情况下,扫描程序使用分隔符模式“ \ p {javaWhitespace} +”,它至少与一个空格匹配作为分隔符。您不必做任何特别的事情。

如果要匹配空格(1个或多个)或逗号,请用此替换扫描仪调用

Scanner in = new Scanner(System.in).useDelimiter("[,\\s+]");


10
投票
String input = scanner.nextLine(); // get the entire line after the prompt String[] numbers = input.split(" "); // split by spaces

数组的每个索引将保留数字的字符串表示形式,可以通过int将其设为Integer.parseInt()。>


9
投票

5
投票

3
投票

2
投票

2
投票
Java 8

1
投票

1
投票
Scanner values = new Scanner(System.in); //initialize scanner int[] arr = new int[6]; //initialize array for (int i = 0; i < arr.length; i++) { arr[i] = (values.hasNext() == true ? values.nextInt():null); // it will read the next input value } /* user enter = 1 2 3 4 5 arr[1]= 1 arr[2]= 2 and soo on */

1
投票

我们要做的就是将这个词保存在字符串数组中。


0
投票

0
投票
Scanner sc = new Scanner(System.in); List<Integer> l = new LinkedList<>(); // use linkedlist to save order of insertion StringTokenizer st = new StringTokenizer(sc.nextLine(), " "); // whitespace is the delimiter to create tokens while(st.hasMoreTokens()) // iterate until no more tokens { l.add(Integer.parseInt(st.nextToken())); // parse each token to integer and add to linkedlist }

0
投票
使用BufferedReader-

0
投票
`String day = ""; day = sc.next(); days[i] = Integer.parseInt(day);`

0
投票
import java.util.Scanner; Scanner scan = new Scanner(System.in); int a,b,c; a = scan.nextInt(); b = scan.nextInt(); c = scan.nextInt();

0
投票
Scanner input = new Scanner(System.in); System.out.println("Enter Name : "); String name = input.next().toString(); System.out.println("Enter Phone # : "); String phone = input.next().toString();
© www.soinside.com 2019 - 2024. All rights reserved.