0

I am trying to check if a number is palindrome or not, I took the numbers in a string then put them into an array of numbers, and I was able to reverse this array of numbers into a new array. Now I want to check if numbersL[]==numbersLreversed[]. Note that my equal here means that both arrays got the same elements at the same indices.

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");
        }

    }

}    
Mureinik
  • 297,002
  • 52
  • 306
  • 350
JOEGREEN
  • 29
  • 7

1 Answers1

1

== checks for identity (i.e., both operands are the exact same object reference), which, as you see, won't be appropriate here. Instead, you can use the JDK's Arrays.equals:

if (Arrays.equals(numbersLreversed, numbersL)) {
    System.out.println("right");
} else {
    System.out.println("NO");
}
Mureinik
  • 297,002
  • 52
  • 306
  • 350