首页 > 解决方案 > 如何在不使用正则表达式的情况下检查字符串格式?

问题描述

我正在做一个项目,我需要检查一个字符串是否采用正确的格式 ABC1234,意思是 3 个字母后跟 4 个数字。我被告知不要使用正则表达式来解决这个问题。

我想出了以下代码,但它很笨重,所以我正在寻找更清洁、更高效的东西。

String sample = ABC1234

char[] chars = sample.toCharArray();

if(Character.isLetter(chars[0]) && Character.isLetter(chars[1]) && 
   Character.isLetter(chars[2]) && Character.isDigit(chars[3]) && 
   Character.isDigit(chars[4]) && Character.isDigit(chars[5]) && 
   Character.isDigit(chars[6])){

    list.add(sample);
}

// OUTPUT: ABC1234 gets added to "list". When it prints, it appears as ABC1234.

所有输出都符合预期,但我知道这可以更有效地完成,或者总体上做得更好。

我只是检查前 3 个字符以验证它们每个都是一个字母,最后 4 个字符应该是数字。

有什么建议吗?提前致谢。

标签: java

解决方案


你不需要

char[] chars = sample.toCharArray();

相反,您可以这样做

if(Character.isLetter(sample.charAt(0))

你也可以更花哨,做一些类似的事情:

void myFonc(string sample) {
 for (int i =0; i < 3; ++i)
        if (!Character.isLetter(sample.charAt(i)))
            return;

 for (int i =3; i < 7; ++i)
        if (!Character.isDigit(sample.charAt(i)))
            return;
list.add(sample);

}

推荐阅读