确定字符串在Java中是否为整数

确定字符串在Java中是否为整数,第1张

确定字符串在Java中是否为整数

最幼稚的方式是遍历String并确保所有元素对于给定的基数都是有效数字。由于你必须至少查看一次每个元素,因此这将尽可能地提高效率。我想我们可以基于基数对其进行微优化,但是就所有意图和目的而言,这都是你所期望的那样好。

public static boolean isInteger(String s) {    return isInteger(s,10);}public static boolean isInteger(String s, int radix) {    if(s.isEmpty()) return false;    for(int i = 0; i < s.length(); i++) {        if(i == 0 && s.charAt(i) == '-') { if(s.length() == 1) return false; else continue;        }        if(Character.digit(s.charAt(i),radix) < 0) return false;    }    return true;}

另外,你可以依靠Java库来实现。它不是基于异常的,并且将捕获几乎所有你能想到的错误条件。它会贵一些(你必须创建一个Scanner对象,该对象在严格的紧缩循环中是你不希望做的。但是通常情况下,它不应该太贵,所以每天 *** 作它应该是相当可靠的。

public static boolean isInteger(String s, int radix) {    Scanner sc = new Scanner(s.trim());    if(!sc.hasNextInt(radix)) return false;    // we know it starts with a valid int, now make sure    // there's nothing left!    sc.nextInt(radix);    return !sc.hasNext();}

如果最佳实践对你来说并不重要,或者你想招揽进行代码审查的人员,请尝试以下 *** 作以获取大小:

public static boolean isInteger(String s) {    try {         Integer.parseInt(s);     } catch(NumberFormatException e) {         return false;     } catch(NullPointerException e) {        return false;    }    // only got here if we didn't return false    return true;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5014191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存