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

Java使用固定长度迭代数组,并使用Scanner类获取值,java,arrays,loops,for-loop,java.util.scanner,Java,Arrays,Loops,For Loop,Java.util.scanner,如何使用固定长度为2的Scanner类获取java数组的值,该类将迭代直到其值等于给定值? 例如对于以下输入 A G N H D F 我编写了一个for循环来获取固定数组road的值,其中长度是2,使用Scanner类 for(int i = 0; i<block.length; i++){ System.out.println("enter number"); block[i]=input2.next().charA

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

   A G 

   N H

   D F      
我编写了一个for循环来获取固定数组road的值,其中长度是2,使用Scanner类

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

for(inti=0;i假设块和input2变量已经设置好,并且循环如图所示正在工作,将该循环放入控制器循环中

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

 } while (block[0] != 'C" && block[1] != 'C' )
do{
对于(inti=0;i您所需要的就是这个

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);
}
试着这样做:

        Scanner input2 = new Scanner(System.in);
        char[] block = new char[2];
        ArrayList<String> arrayList = new ArrayList<String>();
        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);
Scanner input2=新的扫描仪(System.in);
char[]block=新字符[2];
ArrayList ArrayList=新的ArrayList();
int i=0;
o:
while(块[0]!=“C”&块[1]!=“C”){
System.out.println(“输入字符”);
块[i%2]=input2.next().charAt(0);
i++;
add(input2.next());
如果(arrayList.size()>=2){
if(arrayList.get(arrayList.size()-1).equals(“C”)和&arrayList.get(arrayList.size()-2).equals(“C”))
{
断开o;
}
}
}
System.out.println(arrayList);

我从你的问题中得出以下假设

  • 您有一个固定长度的数组,您希望将其读入其中 使用扫描器的值
  • 将值读入数组后,您希望对其进行比较 使用另一个数组中的值进行数组,如果输入 数组与您的数组匹配
  • 这是一个简单的程序:

        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<scannedValues.length;i++)
            {
                scannedValues[i]=s.nextLine();
            }
            for(int i=0;i<scannedValues.length;i++)
            {
                if(matchValue[i].equals(scannedValues[i]))
                    isMatched=true;
                else
                    isMatched=false;
            }
                if(isMatched)
                    s.close();
        }
    
    String[]scannedValues=新字符串[2];
    字符串[]匹配值={“X”,“Y”};
    布尔值isMatched=false;
    扫描仪s=新的扫描仪(System.in);
    而(!IsMatch)
    {
    
    对于(int i=0;i你的意思是要填充数组吗?你的问题很混乱。数组长度是固定的。也就是说数组长度是2。但是我想迭代数组,如我在示例中所示。(长度将保持不变)Scanner类的相关性是什么?你为什么要使用它?@dnk:现在还不清楚你的意思。通常,当有人谈论对数组进行迭代时,他们谈论的是从数组中读取数据,但听起来你可能在试图向它写入数据。基本上,我们无法知道你现在想问什么。Scanner类是获取用户输入值。谢谢!这很有效!您能告诉我如何引用ech数组吗?例如,第一个数组的第一项或第三个数组的第二项也是这样吗?根据情况,您没有保留每个数组的副本。您需要某个地方来存储您读取的每个数组。要向您展示如何引用ech数组,我们需要知道什么类型的p处理您想对数组执行的操作。您是否关心读取它们的顺序?是否需要对它们进行排序?在您的问题中提供更多的上下文。是的,我希望复制每个输入数组,而不替换上面代码中的每个数组。我是否要在其中放入for循环并保存每个输入数组值?谢谢!我如何引用指向特定数组中的每个项目。例如,如何引用用户输入的第一个数组中的第一个项目?或第三个数组中的第二个项目?字符(0)-表示用户输入的第一个字符,但在单个条目中