Java:强制String中的字符为数字或字母

时间:2015-02-18 13:27:07

标签: java string

vatNumber应该被视为前两个字符串中的8个字符串 字符是数字,其余六个字符是数字,例如GB123456

我需要编写一个getVatNumber方法,那么如果前两个字符不是字母而后六个字符不是数字,我将如何以一种显示错误的方式编写方法< / p>

3 个答案:

答案 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”。