java - 如何在不使用正则表达式的情况下检查字符串格式?
问题描述
我正在做一个项目,我需要检查一个字符串是否采用正确的格式 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 个字符应该是数字。
有什么建议吗?提前致谢。
解决方案
你不需要
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);
}
推荐阅读
- javascript - Angular:知道何时启动所有子组件视图的方法
- c++ - 使用 std::minmax_element 作为用户数据类型
- javascript - 无法让日历日期选择器弹出 - Framework7
- jvm - Flink 独立集群:SIGSEGV 碾压 TaskManager
- python - python多图与matplotlib
- pixi.js - PIXIJS 从一个应用程序转换到另一个应用程序
- http - Akka http 不支持的方法异常
- alloy - 如何在合金分析仪中对两个以上的数字求和?
- javascript - 作为第三方 JS 提供者,如何使您的 JS 代码不被其他方的 JS 破坏?
- sql - SQL 分离表连接