如何比较两个数组的元素?[复制]

How to compare between elements of two arrays? [duplicate]

提问人:JOEGREEN 提问时间:12/24/2021 最后编辑:MureinikJOEGREEN 更新时间:12/24/2021 访问量:40

问:

我正在尝试检查一个数字是否是回文,我把数字放在一个字符串中,然后把它们放入一个数字数组中,我能够将这个数字数组反转为一个新数组。现在我想检查一下.请注意,我在这里的相等意味着两个数组在相同的索引下获得相同的元素。numbersL[]==numbersLreversed[]

import java.util.*;

public class Array_and_its_reverse {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String numberS = in.next();           //12121

        String numbersarrayed[] = numberS.split("");      // put numbers in a string array
        long numbersL[] = new long[numbersarrayed.length];   // original
        for (int i = 0; i < numbersarrayed.length; i++) {

            numbersL[i] = Long.parseLong(numbersarrayed[i]);
            System.out.println(numbersL[i]);
        }

        long numbersLreversed[] = new long[numbersarrayed.length];

        System.out.println("Array in reverse order: ");

        for (int i = numbersL.length - 1; i >= 0; i--) {

            numbersLreversed[i] = numbersL[i];
            System.out.println(numbersLreversed[i]);

        }
        if (numbersLreversed == numbersL) {
            System.out.println("right");
        } else {
            System.out.println("NO");
        }

    }

}    
java 数组相 回文

评论

0赞 Turing85 12/24/2021
编辑帖子并正确格式化您的代码。

答:

1赞 Mureinik 12/24/2021 #1

==检查标识(即,两个操作数是完全相同的对象引用),如您所见,这在这里不合适。相反,您可以使用 JDK 的 Arrays.equals

if (Arrays.equals(numbersLreversed, numbersL)) {
    System.out.println("right");
} else {
    System.out.println("NO");
}