Java 检查扫描输入是否既是特定字符串又是三位数字
Java check if a scan input is both a specific string and only three digits
我有一个项目正在询问,“订单由用户输入。订单以 FB 或 SB 开头,然后在这些字母后有三位数字。必须检查以确保订单号是字母代码而且只有三位数。”在 java.
例如。
创建订单号[FB或SB为礼品类型和三个整数]:FB343
我正在努力寻找如何在一个输入中验证两者。
对我来说,这看起来像一个 正则表达式 。您可以使用 Pattern
和 Matcher
来测试给定的订单是否与 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
正则表达式应该可以解决问题。
只是 运行 Pattern.matches() 在序列 ^((FB)|(SB){1})([0-9]{3})$
类似
public class Matcher(string){
bool = Pattern.matches(^((FB)|(SB){1})([0-9]{3})$), string);
}
所以要进一步加强订单号验证:
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!");
}
我有一个项目正在询问,“订单由用户输入。订单以 FB 或 SB 开头,然后在这些字母后有三位数字。必须检查以确保订单号是字母代码而且只有三位数。”在 java.
例如。 创建订单号[FB或SB为礼品类型和三个整数]:FB343
我正在努力寻找如何在一个输入中验证两者。
对我来说,这看起来像一个 正则表达式 。您可以使用 Pattern
和 Matcher
来测试给定的订单是否与 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
正则表达式应该可以解决问题。
只是 运行 Pattern.matches() 在序列 ^((FB)|(SB){1})([0-9]{3})$
类似
public class Matcher(string){
bool = Pattern.matches(^((FB)|(SB){1})([0-9]{3})$), string);
}
所以要进一步加强订单号验证:
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!");
}