当前位置:  开发笔记 > 编程语言 > 正文

如何判断Java整数是否为空?

如何解决《如何判断Java整数是否为空?》经验,为你挑选了2个好方法。

问候,

我正在尝试验证我的整数是否为空.如果是,我需要提示用户输入值.我的背景是Perl,所以我的第一次尝试看起来像这样:

int startIn = Integer.parseInt (startField.getText());

if (startIn) { 
    JOptionPane.showMessageDialog(null,
         "You must enter a number between 0-16.","Input Error",
         JOptionPane.ERROR_MESSAGE);                
}

这不起作用,因为Java期望布尔逻辑.

在Perl中,我可以使用"exists"来检查散列/数组元素是否包含以下数据:

@items = ("one", "two", "three");
#@items = ();

if (exists($items[0])) {
    print "Something in \@items.\n";
}
else {
    print "Nothing in \@items!\n";
}

在Java中有这种方法吗?谢谢您的帮助!

耶利米

PS Perl 存在信息.



1> John Feminel..:

parseInt()如果解析无法成功完成,则会抛出异常.您可以改为使用Integers相应的对象类型,这样可以使事情变得更加清晰.所以你可能想要更接近的东西:

Integer s = null;

try { 
  s = Integer.valueOf(startField.getText());
}
catch (NumberFormatException e) {
  // ...
}

if (s != null) { ... }

请注意,如果您决定使用parseInt()!parseInt()不支持良好的国际化,所以你必须跳过更多的箍:

try {
    NumberFormat nf = NumberFormat.getIntegerInstance(locale);
    nf.setParseIntegerOnly(true);
    nf.setMaximumIntegerDigits(9); // Or whatever you'd like to max out at.

    // Start parsing from the beginning.
    ParsePosition p = new ParsePosition(0);

    int val = format.parse(str, p).intValue();
    if (p.getIndex() != str.length()) {
        // There's some stuff after all the digits are done being processed.
    }

    // Work with the processed value here.
} catch (java.text.ParseFormatException exc) {
    // Something blew up in the parsing.
}


难道你不喜欢一种能让你抓住这么多例外的语言,这样你就可以忽略它们了:)

2> John Topley..:

试试这个:

Integer startIn = null;

try {
  startIn = Integer.valueOf(startField.getText());
} catch (NumberFormatException e) {
  .
  .
  .
}

if (startIn == null) {
  // Prompt for value...
}

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有