java - 为什么这个方法总是返回 false?
问题描述
我想使用提供的方法评估电话号码。电话号码的长度应始终为 10。但是,以下方法似乎总是返回 false。这是为什么?谢谢。
public static boolean valPhoneNumber(String phonenumber){
boolean result= true;
if (phonenumber.length() > 10 || phonenumber.length() < 10){
result= false;
}else
phonenumber.length();
char a=phonenumber.charAt(0);
char b=phonenumber.charAt(1);
char d=phonenumber.charAt(3);
char e=phonenumber.charAt(4);
char f=phonenumber.charAt(5);
if (a<2 || a>9){
result = false;
}else if( b<0 || b>8){
result = false;
}else if (d<2 || d>9){
result = false;
}else if (e==1 && f==1){
result = false;
}
return result;
}
解决方案
因此,请查看将字符与数字进行比较的阶梯。在这种情况下,将使用 ASCII 值进行比较。
您可以使用单引号来检查范围:
if (a < '2' || a > '9') {
result = false;
} else if( b < '0' || b > '8') {
result = false;
} else if (d < '2' || d > '9') {
result = false;
} else if (e == '1' && f == '1') {
result = false;
}
一个班轮:
result = !((a < '2' || a > '9') || (b < '0' || b > '8') || (d < '2' || d > '9') || (e == '1' && f == '1'));
推荐阅读
- python - 为什么我在 ipython 上收到“事件循环中未处理的异常”错误
- python - 为什么格式化的字符串在{大括号}中包含变量或操作之前不需要进行类型转换?
- makefile - MinGW C 编译器“无法编译简单的测试程序”
- java - RestAssured,JSON:验证字段中是否缺少值
- node.js - mongoDB中的分组数据
- python - 在某些限制条件下随机化循环联赛的赛程
- gcc - W10 + Cygwin + gccV9.2 >>>-----> strtoflt128
- python - 如何向 exec 发送停止信号
- android - 离线期间的 Android GDPR 同意书行为
- istio - kiali 通过大使发送显示未知流量