我正在开发程序,希望在出现提示时允许用户输入多个整数。我尝试使用扫描仪,但发现它仅存储用户输入的第一个整数。例如:
输入多个整数:1 3 5
扫描仪将仅获取第一个整数1。是否可以从一行中获取所有3个不同的整数,并在以后使用它们?这些整数是我需要根据用户输入操作的链表中数据的位置。我无法发布源代码,但我想知道是否可行。
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]);
}
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+]");
String input = scanner.nextLine(); // get the entire line after the prompt
String[] numbers = input.split(" "); // split by spaces
数组的每个索引将保留数字的字符串表示形式,可以通过int
将其设为Integer.parseInt()
。>
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
*/
我们要做的就是将这个词保存在字符串数组中。
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
}
`String day = "";
day = sc.next();
days[i] = Integer.parseInt(day);`
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
int a,b,c;
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
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();