如何比较数字的最后一位与另一个数字的最后一位?

How to compare last digit of number w/ last digit of another number?

public static boolean retsim(int x, int y)
{
    String xx = x + "";
    String yy = y + "";
    boolean returnValue = false;
    if(xx.substring(xx.length() - 1) == yy.substring(yy.length() - 1))
    {
        returnValue = true;
    }
    return returnValue;
}

所以当我编译 运行 时没有错误。然而,当只有一个正确或错误的陈述时,它会打印出 2 个错误的陈述。 例如:

Enter in two sets of numbers with either,
The same or different end digit
7
7
// ^^ The two sevens are the inputs
false
false
// ^^ The two false statements that should only be printing out one

当最后一位数字与另一个最后一位数字相同时,它应该 return 为真, 当这两个数字不相同时,程序应该 return false。 请帮忙?!

public static boolean retsim(int x, int y)
{
    String xx = x + "";
    String yy = y + "";
    boolean returnValue = false;
    if(xx.substring(xx.length() - 1).equals(yy.substring(yy.length() - 1)))
    {
        returnValue = true;
    }
    return returnValue;
}

现在 returns:

Enter in two sets of numbers with either,
The same or different end digit
7
7
// ^^ The two sevens are the inputs
true
false
// ^^ The two false statements that should only be printing out one

有人对如何消除最后一个错误有任何想法吗?

我用来调用 class 的代码是:

public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.println("Enter in two sets of numbers with either,\nThe same or different end digit");
int x2 = console.nextInt();
int y = console.nextInt();
System.out.println(retsim(x2,y));
}

我的猜测是您的原始实现不起作用,因为您在应该使用 String#equals(Object) 时使用 == 运算符来比较字符串。 == 是身份平等。如果您有两个不同的 String 实例——即使它们具有相同的内容——== 将始终 return false。

使用 Integer#toString() 怎么样?

public static boolean retsim(Integer x, Integer y) {
    if (null == x || null == y) {
         throw new IllegalArgumentException("x and y must not be null!");
    }

    String xString = x.toString();
    String yString = y.toString();

    return xString.charAt(xString.length-1) == xString.charAt(yString.length-1);
}

return 语句在两个 char 基元上工作,在这种情况下 == 是正确使用的。

zapl 的第一条评论已经给出了很好的提示。

public static boolean retsim(int x, int y)
{
    return Math.abs(x)%10 == Math.abs(y)%10;
}