我需要編寫一個程序,該程序從用戶讀取3個字母和3位數字並將它們插入到一個數組中(格式爲:ABC-123
)。JAVA車牌號碼
我怎樣才能讓一個循環,要求用戶輸入5 * 3個字母和5 * 3數字,直到他正確回答(只有3個字母「請輸入3個字母」,只有3個數字後「請輸入3位數字?」
我迄今爲止代碼:
package bmm;
import java.util.*;
import java.util.regex.Pattern;
public class bmm {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
String[] letter = new String[5];
int[] number = new int[5];
int db = 0;
do {
for (int i = 0; i < letter.length; i++) {
System.out.println("3 letters please:");
letter[i] = scr.nextLine();
if (Pattern.matches("[a-zA-Z]+", letter[i]) == false || letter[i].length() != 3) {
System.out.println("not letters or too short/long");
} else {
db++;
}
}
} while (letter[db].length() != 3 && Pattern.matches("[a-zA-Z]+", letter[db]) != true);
}
}
}
非常感謝您的回答!你解決了我的問題,並幫助我理解了這個dowhile循環。我是一個新手,對於這個遲鈍的問題感到抱歉。無論如何,你離開我掛了:)如果不是這樣,你會如何解決這個問題? –
我不確定有什麼重大的改變。你可以說'!Pattern.matches(「[a-zA-Z] +」,letter [i])'而不是'Pattern.matches(「[a-zA-Z] +」,letter [i])= =假'。你可以擺脫布爾型,使用'while(true){...}'作爲循環,並說'if(!Pattern.matches(...)|| letter [i] .length()! = 3){System.out.println(...); } else {break; }'這將在輸入有效時立即離開循環。 – ajb