如何在JAVA中检查一个字符串是否只包含整数?

4
我希望编写一个小的方法来完成以下任务: 例如,字符串 a = "a123",则该方法应返回 false; 字符串 b = "111",则应返回 true。 这意味着只有当字符串是整数时,它才应返回 true,所有其他情况都应返回 false。 有人能帮我吗?谢谢!

1
负数情况?"-1345"? - Kent
如果是作业问题的话,这似乎是一个作业标签...请添加。 - recursion.ninja
1
@awashburn,作业标签已经被弃用。 - arshajii
@A.R.S. 我不知道作业标签已经被弃用了 ;) - recursion.ninja
2个回答

8

您可以使用 Integer.parseInt(integerString); 方法。

public boolean isInteger(String integerString){

   try{
      Integer.parseInt(integerString);
      return true;
   } catch (NumberFormatException nfe) {
      return false;
   }
}

NumberFormatException指的是解析失败,因此该字符串不是一个整数。


4
如果您想要一个仅由数字0-9组成的字符串(长度任意),您可以使用正则表达式"\\d+",即str.matches("\\d+")。
如果您想考虑正负号,您可以使用"[+-]?\\d+"。
如果您关心长度(原始的int类型不能超过10位数字),您可以使用"[+-]?\\d{1,10}+"。

1
这对于数字验证很好,但整数也有一定的长度。 - Damian Leszczyński - Vash
不,我的意思是整数比长整数短。+ 只负责将空字符串视为无效。 - Damian Leszczyński - Vash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接