我試圖編寫一個方法,它接受一個形式爲「xxxx-xxxx」(x是任意數字1-9)的ID,並檢查輸入的ID是否有效。例如,1111-1111將是有效的,但111p-1111或11111-1111不會。然而,在我寫完這個方法之後,即使ID是111p-1111的形式,也是如此。java ID檢查方法
public static boolean idCheck(String ID){
char[] idChar = ID.toCharArray();
boolean firstHalf = false;
boolean secHalf = false;
for (int i = 0; i < 5; ++i){//Check first half
if ((idChar[i] > 47 && idChar[i] < 58)){//Checks ascii vals to see if valid ID
firstHalf = true;
}
}
for (int i = 5; i < idChar.length; ++i){//Check second half
if ((idChar[i] > 47 && idChar[i] < 58)){//Checks ascii vals to see if valid ID
secHalf = true;
}
}
//If all values are valid, returns true.
if (firstHalf == true && secHalf == true && idChar[4] == '-' && ID.length() == 9){
return true;
}
return false;
}
是的,這是因爲如果零件的一個包含一個數字,您將布爾變量設置爲true。最好的辦法是將firstHalf和secondHalf設置爲true,然後在for循環中,如果它不是數字,則將布爾變量設置爲false並打破循環。如果你熟悉正則表達式,你可以使用正則表達式匹配「匹配4位數--4位數」 – 2014-11-20 22:21:35