首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试确定字符串是否为整数

问尝试确定字符串是否为整数
EN

Stack Overflow用户
提问于 2016-11-10 11:36:16
回答 5查看 26.1K关注 0票数 1

说明:给定一个字符串,判断它是否为整数。例如,字符串“123”是一个整数,但字符串“hello”不是。

如果字符串中的所有字符都是数字,则为整数。

如果是整数,则返回true;如果不是,则返回false。

提示:有一个方法Character.isDigit(),它接受一个字符作为参数并返回一个布尔值。

到目前为止,我所拥有的:

代码语言:javascript
复制
public boolean isInteger(String str) {
    if(Character.isDigit(str.charAt(0)) == 0) {
        return false;
    }
    for (int i = 0; i < str.length(); i++) {
        if(Character.isDigit(str.charAt(i))) {
            break;
        } else {
            return false;
        }
    }
    return true;
}

我在返回字符串"101“的布尔值时遇到问题,根本没有字符串(”")

EN

回答 5

Stack Overflow用户

发布于 2016-11-10 11:42:15

您可以使用正则表达式。

代码语言:javascript
复制
return str.matches("\\d+");

但对负数不起作用。

您还可以使用Integer.parseInt并捕获NumberFormatException,并相应地返回true/false。

或者,您不应该中断您找到的第一个数字,因为您需要检查所有字符,直到您找到一个不是数字的数字。同样,这不能捕获负数。

代码语言:javascript
复制
public boolean isInteger(String str) {
    if(str == null || str.trim().isEmpty()) {
        return false;
    }
    for (int i = 0; i < str.length(); i++) {
        if(!Character.isDigit(str.charAt(i))) {
            return false;
        } 
    }
    return true;
}

就我个人而言,选项2是最好的,但您的说明似乎暗示您需要迭代字符值

票数 8
EN

Stack Overflow用户

发布于 2016-11-10 11:42:21

只要检查Integer.parseInt是否抛出异常即可。

代码语言:javascript
复制
try {
    Integer.parseInt(string);
} catch (NumberFormatException e) {
    return false;
}
return true;
票数 2
EN

Stack Overflow用户

发布于 2016-11-10 12:32:33

以上所有的解决方案在我看来都是正确的,但我想再给出一个解决这个问题的方案。您也可以使用ASCII值进行检查:

代码语言:javascript
复制
private Boolean IsInteger(String str)
{
   int length = str.length(),c=0;
   if(length==0)
      return false;
   for(int i=0;i<length; i++)
   {
      c = (int)str.charAt(i)-48;
      if(!(c>=0 && c<10))
         return false;
   }
  return true;
}

我认为我的解决方案要好得多,因为它每次迭代使用的库函数数量更少。

我不会检查负值,因为在问题中,如果所有字符都是数字,则字符串是整数。如果要检查负数,可以通过在i==0;中添加一个条件来实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40519580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档