等于和==检查两个int值是否相同

时间:2020-01-01 12:26:26

标签: java integer equals

试图编写一个逻辑来检查给定的号码是否是阿姆斯特朗号码。在这里我需要帮助。尽管这些值相同,但始终会显示false,并且按照逻辑说数字不相等。

package src;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


public class ArmStrongTest {


    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println(isArmStrongNumber(153));// prints false;

    }

    private static boolean isArmStrongNumber(int nos) {

        List<Integer> digits = new ArrayList<Integer>();
        int itrNumbers = 0;

        while (nos > 0) {
            digits.add(nos % 10);
            nos /= 10;
        }

        Collections.reverse(digits);

        for (int i : digits) {
            itrNumbers += i * i * i;

        }

        System.out.println(java.util.Objects.equals(Integer.valueOf(itrNumbers), Integer.valueOf(nos)));// prints false;

        if (itrNumbers == nos ) { // both values are 153 but it says not equals

            return true;

        } else {

            return false;

        }

    }

}

如何解决这个问题?我在代码中遗漏了什么?我不知道。我一直都在虚假印刷。在这种情况下如何解决这个问题?

0 个答案:

没有答案