我的问题实际上只是与我应该在哪里放置代码来检查以确保输入是整数有关。感谢任何提供帮助的人。
public static String getQuantity(String aQuantity){
while (isValidQuantity(aQuantity)== false ){
errorMessage += "Enter Valid quantity\n";
}
return aQuantity;
}
private static boolean isValidQuantity(String aQuantity){
boolean result = false;
try{
Double.parseDouble(aQuantity);
//here?//
result = true;
}catch(Exception ex){
result = false;
}
return result;
}
最佳答案
您可以使用正则表达式轻松完成此操作。对于双重使用:
Pattern.compile("\\d+\\.\\d+")
如果您想处理科学计数法中的 double (例如 3.4-e20
),请使用:
Pattern.compile("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?")
对于整数,您可以简单地使用上面每个正则表达式中 .
之前的部分。喜欢
Pattern.compile("\\d+")
对于可能有符号的数字,
Pattern.compile("[-+]?[0-9]+")
注意最后一个末尾的+
。必须至少有一位数字才能成为数字,因此不能使用 *
,这意味着出现零次或多次。
正则表达式的 Javadocs here .
测试 regexr 中的 double 模式.
关于Java-如何让 validator 检查输入是否是 double 和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35446507/