我有3种金色,特殊和正常的电话号码。我要做的是当电话号码中的用户密钥时,它将自动确定电话号码属于哪个类别。让我举一个黄金类别编号的示例:AA001234(AA代表2位数字,具有相同的数字,例如11,22,33等)。我得到的
public static void main(String[] args) {
Scanner userinput = new Scanner(System.in);
System.out.println("Enter Telephone Number");
String nophone = userinput.next();
String Golden = "(\d{2})002345"; // <-- how to write the code if the user
//enter the same digit for the first 2 number, it will belong to Golden category?
String Special1 = "12345678|23456789|98765432|87654321|76543210";
if (nophone.matches(Golden)) {
System.out.println("Golden");
}
else if (nophone.matches(Special1)) {
System.out.println("Special 1");
}
else {
System.out.println("Normal");
}
}
我不确定Java支持完整的正则实现,但是如果确实如此,您可以使用:
(d)(1)002345
1
表示回到第一个匹配(括号 - ed),因此(d)(1)
将连续匹配两个相同的数字。
如果Java不支持此,我建议您对其进行硬编码,因为您只有3个类别。
您可以使用 (\d)\1
之类的背景。(例如(\d)\1\d*
)。
其中
- 第一个
\d
表示数字 -
\1
表示相同的数字和 -
\d*
表示0或更多数字。
如果数字的长度无关,则可以使用。由于您使用的是Java,因此您需要两个斜杠。
String Golden = "(\d)\1\d*";
如果数字的长度应完全是八个
String Golden = "(\d)\1\d{6}";
如果要匹配五个重复数字,
String Golden = "(\d)\1{4}\d*";