Java迭代具有固定长度的数组,并使用Scanner类获取值

如何使用具有固定长度2的Scanner类获取java数组的值,并且它将迭代直到其值等于给定值? 例如; 对于以下输入,

AGNH DF 

我写了一个for循环来获取固定数组道路的值,其中使用Scanner类的长度为2。

  for(int i = 0; i<block.length; i++){ System.out.println("enter number"); block[i]=input2.next().charAt(0); } 

我想迭代这个循环,而用户输入是{‘C’,’C’}。 这意味着如果输入如下,arrays循环shpuld停止;

AG

NH

DF

CC

如何编写代码以使用Scanner类获取用户输入值并迭代数组? 并且应该复制用户输入值而不用新输入的值替换它们。 谢谢!

假设您的block和input2变量已经设置并且您所显示的循环正在工作,请将该循环放在控制器循环中

  do { for(int i = 0; i 

试试这种方式:

  Scanner input2 = new Scanner(System.in); char[] block = new char[2]; ArrayList arrayList = new ArrayList(); int i = 0; o: while (block[0] != 'C' && block[1] != 'C') { System.out.println("enter character"); block[i % 2] = input2.next().charAt(0); i++; arrayList.add(input2.next()); if(arrayList.size()>=2){ if(arrayList.get(arrayList.size()-1).equals("C") && arrayList.get(arrayList.size()-2).equals("C")) { break o; } } } System.out.println(arrayList); 

你需要的只是这个

 char[] block = new char[2]; while (block[0] != 'C' && block[1] != 'C') { System.out.println("enter number"); block[0]=input2.next().charAt(0); System.out.println("enter number"); block[1]=input2.next().charAt(0); } 

我从你的问题中假设以下内容

  1. 您有一个固定长度的数组,您希望使用扫描仪读取值
  2. 一旦将值读入数组,您就希望将此数组与另一个数组中的值进行比较,并在输入数组与数组匹配时执行某些操作。

这是一个简单的程序,它执行此操作:

  String[] scannedValues=new String[2]; String[] matchValue={"X","Y"}; boolean isMatched=false; Scanner s=new Scanner(System.in); while(!isMatched) { for(int i=0;i 

您可以使用某些Scanner方法(例如nextInt()等)来查找各种类型的值。您还可以将正则表达式传递给扫描器,例如next("[AZ]{1}")但是,如果您使用的话正则表达式请注意,用户提供的输入与表达式之间的不匹配将导致InputMismatchException。