有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java不使用+、*和否定数字

是否可以不使用+、*和-运算符对数字求反。 我知道可以使用BigDecimal negate()函数来完成。 可以不使用外部库吗

例如: int n=9 输出: -九,


共 (2) 个答案

  1. # 1 楼答案

    如果您只是在寻找一个util方法,那么可以使用^{}

    int n = Math.negateExact(9);
    

    结果将是-9

    在内部Math.negateExact()仅使用-

    public static int negateExact(int a) {
        if (a == Integer.MIN_VALUE) {
            throw new ArithmeticException("integer overflow");
        }
        return -a;
    }
    
  2. # 2 楼答案

    据我所知,这方面没有java方法

    因此,您的选择是通过简单地乘以-1来构建它。 或者使用另一个库

    public class NumberUtils {
        public static int negate(int i) {
            return i * -1;
        }
    }
    

    使用此Utils类将如下所示:

    public class NumberUtilsTest {
      public static void main(String[] args) {
          Integer i = new Integer(9);
          int i2 = 9;
          System.out.println(NumberUtilsTest.negate(i)); // prints -9
          System.out.println(NumberUtilsTest.negate(i2)); // prints -9
      }
    }