如何使用Java中的Scanner将输入值存储在数组中
嗨,我是Java新手,我正在尝试使用Scanner类。 我试图找出一个小问题,我想输入两个输入,如:4 5 6和8 9 0.我想在一个数组中存储4,5,6,在另一个数组中存储8,9,0然后打印这些数组。 但我无法这样做。 我写了以下代码:
public class scanner { public static void main(String[] args) { int[] array = new int[3]; int[] array2 = new int[3]; Scanner scan = new Scanner(System.in); int i = 0; while(scan.hasNextInt()){ array[i] = scan.nextInt(); i++; if(i == 3){ break; } } i = 0; while(scan.hasNextInt()){ array2[i] = scan.nextInt(); i++; if(i == 3){ break; } } for(int j = 0; j < array.length; j++){ System.out.println(array[j]); } for(int j = 0; j < array2.length; j++){ System.out.println(array2[j]); } } }
但这并不是在一行中输入4 5 6。 我想在一行中输入4 5 6,以便所有三个数字都存储在数组中。 有人可以帮帮我吗。 我假设我应该使用分隔符来删除空格,但我不知道如何去做。
你可以试试这样的东西,而不是你要填充arrays的2个循环。
扫描仪在这里逐行读取,每行在空间上分割(如您在问题中所提到的),然后将每个分割元素转换为整数并填充数组。
String line1 = scan.nextLine(); // Read 1st line String[] numbers1 = line1.split(" "); // Split based on space for(int i=0;i
样本I / O: -
Input: 1 2 3 4 5 6 Output: 1 2 3 4 5 6
要做到这一点,你必须将String作为一个洞4 5 6
并使用split(“”)来获得一个数组:
String val="4 5 6"; String [] arr = val.split(" ");
然后像现在一样继续循环你的arry
这是你想要的?
public class InputScanner { public static void main(String[] args) { int[] array = new int[3]; int[] array2 = new int[3]; Scanner scan = new Scanner(System.in); int i = 0; while (scan.hasNextInt()) { array[i] = scan.nextInt(); i++; if (i == 3) { break; } } i = 0; while (scan.hasNextInt()) { array2[i] = scan.nextInt(); i++; if (i == 3) { break; } } for (int j = 0; j < array.length; j++) { System.out.print("" + array[j] + (j<(array.length-1)?" ":"\n")); } for (int j = 0; j < array2.length; j++) { System.out.print("" + array2[j] + (j<(array2.length-1)?" ":"\n")); } } }
你的代码没问题。 根据javadoc,Scanner的默认分隔符是空格。
输入由分隔符模式分解为标记,默认情况下为空格
可能让您感到困惑的是,print将每个整数放在一个新行中。 要解决这个问题,你可以简单地写一下:
for(int j = 0; j < array.length; j++){ System.out.print(array[j] + " "); } System.out.println(); for(int j = 0; j < array2.length; j++){ System.out.print(array2[j] + " "); }
int[] array = new int[3]; int[] array2 = new int[3]; Scanner scan = new Scanner(System.in); for(int i = 0 ; i < array.length ; i++){ array[i] = scan.nextInt(); } for(int i = 0 ; i < array2.length ; i++){ array2[i] = scan.nextInt(); } for(int j = 0; j < array.length; j++){ System.out.println(array[j]); } for(int j = 0; j < array2.length; j++){ System.out.println(array2[j]);
import java.util.*; class Ab { public static void main(String[] args) { Scanner s=new Scanner(System.in); String str=s.nextLine(); String [] arr=str.split(" "); Integer [] a=new Integer[arr.length]; for(int i=0;i
您可以尝试这样做,并可以相应地进行更改。