如何确定字符串是否包含整数?

时间:2010-12-08 14:25:36

标签: java

假设您有一个要测试的字符串,以确保它在继续使用其他代码之前包含一个整数。在java中,你将使用什么来确定它是否是一个整数?

12 个答案:

答案 0 :(得分:14)

如果您想确保整数并将其转换为1,我会在try/catch中使用parseInt。但是,如果您想检查字符串是否包含数字,那么最好将String.matchesRegular 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)

  1. 用户正则表达式:

    Pattern.compile("^\\s*\\d+\\s*$").matcher(myString).find();

  2. 通过try / catch(NumberFormatException)包装Integer.parse()

答案 5 :(得分:0)

您可能还想查看java.util.Scanner

示例:

new Scanner("456").nextInt

答案 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) {}