我有一個專案在問,“訂單由用戶輸入。訂單以 FB 或 SB 開頭,然后在這些字母后有三位數字。必須檢查以確保訂單號是字母代碼且只有三位數字。 " 在爪哇。
前任。創建訂單號【FB或SB為禮品型別和三個整數】:FB343
我正在努力尋找如何在一個輸入中驗證兩者。
uj5u.com熱心網友回復:
在我看來,這就像一個正則運算式。您可以使用PatternandMatcher來測驗給定的順序是否與 ; 匹配Pattern。它是否以 F 或 S 開頭,然后是 B,然后是三位數字。喜歡,
String[] arr = { "SB123", "FB124", "CBXXX", "FB1234" };
Pattern p = Pattern.compile("[SF]B\\d{3}");
for (String s : arr) {
Matcher m = p.matcher(s);
System.out.printf("%s %b%n", s, m.matches());
}
輸出
SB123 true
FB124 true
CBXXX false
FB1234 false
uj5u.com熱心網友回復:
正則運算式應該可以解決問題。
只需在序列 ^((FB)|(SB){1})([0-9]{3})$ 上運行 Pattern.matches()
就像是
public class Matcher(string){
bool = Pattern.matches(^((FB)|(SB){1})([0-9]{3})$), string);
}
uj5u.com熱心網友回復:
因此,要進一步增強訂單號驗證:
String orderNumber = "fb323"; // The Order Number.
int minNumber = 100; // The min value that will ever be in a Order. Number
int maxNumber = 2500; // The max value that will ever be in a Order. Number
int curNumber = Integer.parseInt(orderNumber.replaceAll("\\D", ""));
if (orderNumber.matches("(?i)[SF]B\\d{3,}") && (curNumber >= minNumber && curNumber <= maxNumber)) {
System.out.println("VALID!");
}
else {
System.out.println("INVALID!");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/484248.html
上一篇:如果相鄰單元格為空,則拒絕輸入
