![](/img/trans.png)
[英]Iterate Java array with fixed length to take user input values without replacing former values
[英]Java Iterate array with a fixed length and take values with Scanner class
我如何使用固定长度2的Scanner类获取Java数组的值,并且它将迭代直到其值等于给定值? 例如; 对于以下输入,
A G
N H
D F
我编写了一个for循环来获取固定数组road的值,其中使用Scanner类的长度为2。
for(int i = 0; i<block.length; i++){
System.out.println("enter number");
block[i]=input2.next().charAt(0);
}
我想在用户输入为{'C','C'}时迭代此循环。 THat表示如果输入如下,则数组循环应停止;
AG
NH
DF
CC
我如何编写代码以使用Scanner类获取用户输入值并迭代数组? 并且应该复制用户输入值,而不用新输入的值替换它们。 谢谢!
假设您的block和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' )
尝试这种方式:
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);
您需要的就是这个
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<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();
}
您可以使用某些Scanner方法(例如nextInt()
等)来查找各种类型的值。还可以将正则表达式传递给Scanner,例如next("[AZ]{1}")
但是,如果使用正则表达式请注意,用户提供的输入与您的表达式之间的不匹配将导致InputMismatchException。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.