Member 13530900 Ответов: 2

Привет, я пишу код для палиндрома. Какой бы вход я ни давал, он показывает выход как"не палиндром". Где ошибка в моем коде? Пожалуйста помочь


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner inp=new Scanner(System.in);

        System.out.println("Enter the number");

        int num1= inp.nextInt();
        int num=num1;
        String s1="";

        while (num>0) {
            int r=num%10;
            s1=s1+r;
            num=num/10;
        }

        System.out.println("S1=" + s1);

        if (String.valueOf(s1) == String.valueOf(num1)){
            System.out.println("Palindrome");
        }
        else {
            System.out.println("Not Palindrome");
        }
    }
}


Что я уже пробовал:

Выше

2 Ответов

Рейтинг:
5

Dave Kreskowiak

В Java оператор == не сравнивает строку с другой строкой. Он сравнивает ссылки на эти строки. Это означает, что обе переменные указывают на одну и ту же строку в памяти. В твоем случае этого никогда не случится.

Подсказка: вам даже не нужна строка, чтобы выполнить это задание. Это можно сделать полностью с помощью целочисленной математики.

Нет, я не даю вам код, потому что это было бы мошенничеством с вашим заданием.


Рейтинг:
2

Richard MacCutchan

То == оператор не сравнивает фактические строки.
Видеть Строка (Java Platform SE 7 )[^].


Member 13530900

Итак,как сравнить две строки? Я нахожусь только в фазе обучения

Dave Kreskowiak

myString.equals(otherString)

Richard MacCutchan

Идти к Учебные Пособия По Java™ [^]