我有一个创建的方法来检查字符串是否包含String中的9的任何变体。这可能是4个9、9个9等。我遇到的问题是,其中包含9的任何东西都是正确的。我需要提取一定长度的数字序列。
我必须检查这9个数字的原因是由于数据错误。该错误数据可能有五个九或十个九等,例如99999999或999999999,如果找到,则返回true。
什么是完成我要完成的工作的好方法?我还在学习。谢谢!
这是我为此方法编写的内容
public static Boolean isValidTrmDt(String dt){
if(dt.isEmpty() || dt == null || dt.equals("0") || dt.contains("9") ==
true && dt.length() > 0) {
return Boolean.FALSE;
}
return Boolean.TRUE;
}
答案 0 :(得分:3)
答案 1 :(得分:0)
大多数情况下看起来不错,但是您有很多多余的检查。
dt.isEmpty() || dt == null || dt.equals("0") || dt.contains("9") == true && dt.length() > 0
应该首先进行null
检查,否则dt.isEmpty()
将引发异常。
我不确定dt.length() > 0
的重点。如果它有9,则其长度已经大于零,因为它有9。
您可以将其简化为
dt == null || dt.isEmpty() || dt.equals("0") || dt.contains("9")
您可以通过返回以下语句来进一步简化它:
public static boolean isValidTrmDt(String dt){
return !(dt == null || dt.isEmpty() || dt.equals("0") || dt.contains("9"));
}
答案 2 :(得分:0)
您可以从输入中删除9,以防万一您不想使用正则表达式。
boolean isOnlyContainingNines(String input){
String output = value.replace("9","");
return output.isEmpty();
}
答案 3 :(得分:0)
如果要检查String是否仅包含特定数字,请使用此方法
boolean matchesNumber(String input, String numberToMatch){
return input.replace(numberToMatch, "").isEmpty();
}