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); }
我从你的问题中假设以下内容
- 您有一个固定长度的数组,您希望使用扫描仪读取值
- 一旦将值读入数组,您就希望将此数组与另一个数组中的值进行比较,并在输入数组与数组匹配时执行某些操作。
这是一个简单的程序,它执行此操作:
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。