Java 检测字符串不';不包括数字
我需要检测的用户号码不应该包括字符 我知道这个方法:Java 检测字符串不';不包括数字,java,Java,我需要检测的用户号码不应该包括字符 我知道这个方法: public boolean haveDigit(String str) { for (int i = 0; i < str.length(); i++) { if (Character.isDigit(str.charAt(i))) return true; } return false; } public boolean haveDigit(字符串str){ 对于(int i=0;i
public boolean haveDigit(String str) {
for (int i = 0; i < str.length(); i++) {
if (Character.isDigit(str.charAt(i))) return true;
}
return false;
}
public boolean haveDigit(字符串str){
对于(int i=0;i
还有其他更好、更简单的解决方案吗?关于
Integer.parseInt(String)
看看是否存在整数
public boolean isNumeric(String num)
{
try
{
Integer.parseInt(num);
return true;
}
catch(NumberFormatException e)
{
return false;
}
}
public boolean checkNumeric(String str) {
try {
Integer.parseInt(str); // parse to check if the integer is an integer
return true;
} catch (NumberFormatException ne) {
return false;
}
你可以在这里使用正则表达式。当前,您的代码正在测试字符串是否包含至少一个数字。如果需要,您可以使用:
// Modification of your code. Test string contains at least 1 digit
public boolean haveDigit(String str) {
return !str.replaceAll("\\D+", "").isEmpty();
}
// Test is string only contains digit and no other character
public boolean isDigit(String str) {
return str.matches("\\d+");
}
但是根据您的文本,您需要测试字符串是否只包含一个数字。为此,您可以使用:
// Modification of your code. Test string contains at least 1 digit
public boolean haveDigit(String str) {
return !str.replaceAll("\\D+", "").isEmpty();
}
// Test is string only contains digit and no other character
public boolean isDigit(String str) {
return str.matches("\\d+");
}
使用类和正则表达式。
此方法与您的方法相同
public boolean haveDigit(String str)
{
Pattern p = Pattern.compile(".*[0-9].*");
Matcher m = p.matcher(str);
return m.matches();
}
试验
下一个方法检查您的请求
public boolean isNumeric(String str)
{
Pattern p = Pattern.compile("[0-9]+");
Matcher m = p.matcher(str);
return m.matches();
}
试验
isNumeric("r5t"); // false
isNumeric("100"); // true
isNumeric("0.5"); // false
怎么样(OP编辑后的更新版本)
您的内容和代码不匹配。您可以使用正则表达式。在内容中,您写道str不应包含字符。在代码中,您正在测试它是否包含至少一个数字。@RohitJain是的,我更正了它,谢谢!事实上,你的标题、内容和代码都在说3件不同的事情。请说明您真正想要的是什么。我想您需要字符串的开头和结尾here@Cruncher
matches
仅当整个字符串与传递的正则表达式匹配时才返回true,因此^
和$
在这里是多余的(如果这是您的意思)。如果num
大于int
,该怎么办,甚至是长的biginger
可能是这里更好的选择。