vatNumber
应该被视为前两个字符串中的8个字符串
字符是数字,其余六个字符是数字,例如GB123456
。
我需要编写一个getVatNumber
方法,那么如果前两个字符不是字母而后六个字符不是数字,我将如何以一种显示错误的方式编写方法< / p>
答案 0 :(得分:1)
我知道正则表达式会更简单,但由于我假设这是一项任务,让我们看看我们是否可以将事情分解为更容易的部分。
在您的示例中,我们假设String vatNumber = "GB123456";
我们需要确保前2个字符是字母,最后6个是数字。首先,给出一个字符串,你如何看待一个字符,比如第一个G?
到目前为止,您应该已经了解了类似vatNumber.charAt(0)
的内容,它会为您提供特定索引的角色。在此处,将其另存为char
变量(类似char letter1
)。
现在,我假设您刚刚了解了Character
类及其一些奇妙的方法,这些方法允许您执行Character.isLetter(letter1)
之类的操作如果第一个字母实际上是G
,则 true 。
对所有8个字符执行相同的处理(或使用循环代替)和if
它们都是正确的,然后您不会显示错误else
。
答案 1 :(得分:0)
String var = "AD456565";
if (var.length() == 8) {
Pattern pattern = Pattern.compile("[A-Za-z]{2}[0-9]{6}");
Matcher matcher = pattern.matcher(var);
if (matcher.find()) {
System.out.println("mached");
} else {
System.out.println("Match not found");
}
}
答案 2 :(得分:0)
为所需的VAT模式设置正则表达式
static Pattern vatPattern = Pattern.compile("^[A-Z]{2}\\d{6}$");
然后尝试匹配每个模式。
if(vatPattern.matcher(pattern).matches()) {
System.out.println(pattern + " matches");
} else {
System.out.println(pattern + " fails");
}
请注意,增值税模式应指定字符串的开头和结尾,以防止匹配“ABC123456”。