[英]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.