java判断bigdecimal是否为空_很火的Java题——判断一个整数是否是奇数

完成以下代码,判断一个整数是否是奇数:

public boolean isOdd(int i)

看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。

最普遍的风格,如下:

021b195b9ca3b84c16c10760610294c5.png

这个函数的定义要求返回一个布尔类型的值。而 if 后面的括号里面的表达式的值也是一个布尔类型的。由此,可进行如下改进:

2b72d6bbe8f73bd0a8acb810ffa83722.png

奇数可以分为正奇数和负奇数。奇数的数学表达形式为 2k+1 (k≠0)。由此,优化如下:

8c14679c68072cce4b3b308305a1b984.png

简单分析,做出如下改进:

7c23074efa95af822a115b87abf6b752.png

右移一位相当于该数除以2,右移2位相当于该数除以4,结果没有小数位,都是取整。

左移一位相当于该数乘以2,左移2位相当于该数乘以2^2=4。

位运算:某数除以2,再乘以2不等于该数,说明该数为奇数:

b28c831d4c6f7a5e7dac20d59684e59a.png

=== and运算 ===

and运算通常用于二进制的取位操作。一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。代码如下:

8dc4f41312543d0cbea0985ac85eb8f6.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用BigDecimal的compareTo方法判断是否为,如果为则为空。具体代码如下: BigDecimal bd = new BigDecimal(""); if (bd.compareTo(BigDecimal.ZERO) == ) { System.out.println("BigDecimal为空"); } else { System.out.println("BigDecimal不为空"); } ### 回答2: 在Java中,BigDecimal一个非常常用的类,通常用于处理浮点数和非常大或非常小的数值,例如货币计算等。因此,我们经常需要判断一个BigDecimal对象是否为空或为null。 判断一个BigDecimal是否为空或为null,可以使用以下几种方法: 1. 判断是否为null: 可以使用Java中的null关键字来判断一个BigDecimal对象是否为null。例如: ``` BigDecimal decimal = null; if (decimal == null) { System.out.println("decimal is null"); } ``` 2. 判断是否为0: 使用compareTo方法将BigDecimal与0进行比较,如果结果为0,则说明它是一个空值。例如: ``` BigDecimal decimal = new BigDecimal("0"); if (decimal.compareTo(BigDecimal.ZERO) == 0) { System.out.println("decimal is empty"); } ``` 3. 判断是否为空值: 调用BigDecimal类的equals方法判断是否为空值。例如: ``` BigDecimal decimal = null; if (decimal != null && decimal.equals(BigDecimal.ZERO)) { System.out.println("decimal is empty"); } ``` 总之,在Java判断一个BigDecimal对象是否为空或为null,需要使用以上三种方法之一。方法的选择应该根据具体情况来决定,选择最适合自己的方法可以使代码更加简洁和易于理解。 ### 回答3: Java中,判断一个BigDecimal对象是否为空,可以通过以下几个方法: 1. 使用null值判断: 在Java中,BigDecimal对象的默认值为null。因此,我们可以使用null值来判断一个BigDecimal对象是否为空。例如: BigDecimal num = null; if (num == null) { System.out.println("BigDecimal对象为空"); } 2. 使用equals()方法判断BigDecimal类实现了equals()方法,因此我们可以使用该方法来比较两个BigDecimal对象是否相等。如果一个BigDecimal对象为null,即使它的值为0,也无法调用该方法。因此,在使用equals()方法比较两个BigDecimal对象之前,需要先进行空值判断,否则会发生空指针异常。例如: BigDecimal num = new BigDecimal("0.0"); if (num == null || num.equals(BigDecimal.ZERO)) { System.out.println("BigDecimal对象为空"); } 3. 使用compareTo()方法判断BigDecimal类也实现了compareTo()方法,该方法会根据两个BigDecimal对象的大小关系返回一个整数值。当两个BigDecimal对象相等时,返回0;当第一个对象小于第二个对象时,返回小于0的值;当第一个对象大于第二个对象时,返回大于0的值。因此,我们可以根据compareTo()方法的返回值来判断一个BigDecimal对象是否为空。例如: BigDecimal num = null; if (num == null || num.compareTo(BigDecimal.ZERO) == 0) { System.out.println("BigDecimal对象为空"); } 在以上三种方法中,建议优先使用null值判断的方法,因为它的语法简单、清晰易懂,且可以避免空指针异常的发生。同时,如果一个BigDecimal对象为null,使用compareTo()或equals()方法比较会返回空指针异常或false,可能会导致代码出现难以识别的错误。因此,在判断BigDecimal对象是否为空时,需要谨慎使用比较方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值