假设您有一个要测试的字符串,以确保它在继续使用其他代码之前包含一个整数。在java中,你将使用什么来确定它是否是一个整数?
答案 0 :(得分:14)
如果您想确保仅整数并将其转换为1,我会在try/catch
中使用parseInt。但是,如果您想检查字符串是否包含数字,那么最好将String.matches与Regular Expressions一起使用:stringVariable.matches("\\d")
答案 1 :(得分:6)
您可以检查以下内容是否属实:"yourStringHere".matches("\\d+")
答案 2 :(得分:5)
String s = "abc123";
for(char c : s.toCharArray()) {
if(Character.isDigit(c)) {
return true;
}
}
return false;
答案 3 :(得分:1)
我使用String类中的方法matches():
Scanner input = new Scanner(System.in)
String lectura;
int number;
lectura = input.next();
if(lectura.matches("[0-3]")){
number = lectura;
}
这样您还可以验证数字的范围是否正确。
答案 4 :(得分:0)
用户正则表达式:
Pattern.compile("^\\s*\\d+\\s*$").matcher(myString).find();
通过try / catch(NumberFormatException)包装Integer.parse()
答案 5 :(得分:0)
答案 6 :(得分:0)
你总是可以使用Googles Guava
String text = "13567";
CharMatcher charMatcher = CharMatcher.DIGIT;
int output = charMatcher.countIn(text);
答案 7 :(得分:0)
这应该有效:
public static boolean isInteger(String p_str)
{
if (p_str == null)
return false;
else
return p_str.matches("^\\d*$");
}
答案 8 :(得分:-1)
使用http://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html
处的Integer.parseInt()方法答案 9 :(得分:-1)
如果您只想测试,如果String只包含整数值,请编写如下方法:
public boolean isInteger(String s) {
boolean result = false;
try {
Integer.parseInt("-1234");
result = true;
} catch (NumberFormatException nfe) {
// no need to handle the exception
}
return result;
}
parseInt
将返回int
值(在此示例中为-1234)或抛出异常。
答案 10 :(得分:-1)
您可以使用apache StringUtils.isNumeric。
答案 11 :(得分:-1)
int number = 0;
try {
number = Integer.parseInt(string);
}
catch(NumberFormatException e) {}