【问题标题】:Checking for valid int检查有效的 int
【发布时间】:2015-05-30 23:59:53
【问题描述】:

我正在以字节数组的形式从蓝牙接收数据,我可以将其转换为 char 数组,如果我在 TextView 中显示它,数据将正确显示但是当我尝试运行我的函数时,它将遍历所有当涉及到 NumberFormatException 捕获的/u0000 (又名NULL?)字符时,我的字节数组中的空格会被绊倒,但在捕获代码运行后它会崩溃。对我来说,典型的 byte[] 看起来像 {'1','2','\u0000','\u0000'},它代表通过蓝牙发送的数字 12。

我的想法是让代码检查 int 值,然后在它不可解析时捕获异常,或者如果是则继续运行。然后,这将设置布尔值,调用函数将接收该字符是否为有效的 int。

这是我的代码:

private boolean checkForInt(char c) {
    boolean isInt;
    try {
        Integer.parseInt(c + "");
        isInt = true;
    } catch (NumberFormatException e){
        isInt = false;
    }
    return isInt;
}

【问题讨论】:

  • 你想检查字节数组中的空格吗??
  • 我不确定到底是什么问题,但是可以通过检查 char 的 ascii 值来减少 checkForInt(例如 'return c >= 48 && c

标签: java android arrays exception bluetooth


【解决方案1】:

如果遇到 NUL 终止字符的问题,在遍历字节数组时检查第 ith 字符是否为 NUL,如果是,请不要尝试解析它...

【讨论】:

    【解决方案2】:

    您可以在您的 char c 上使用 Character.isDigit(char)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-16
      • 2011-01-31
      • 2013-07-29
      • 2015-01-16
      • 2014-08-12
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多