我正在做一个项目,我需要检查一个字符串是否格式正确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个字符应该是数字.
有什么建议?提前致谢.
解决方法
这是另一种方式.
String sample = "ABC1234"; if (sample.substring(0,3).chars().allMatch(Character::isLetter) && sample.substring(3).chars().allMatch(Character::isDigit)) { list.add(sample); }