2013-02-23 5 views
0

Как проверить номер на симметрике?cheking on симметричное число

public static int Symmetric(int a) { 
    if(new StringBuilder(Integer.toString(a)) == 
     new StringBuilder(Integer.toString(a)).reverse()) 
     return a; 
    else 
     return 0; 
} 

Я пытаюсь сделать это, как это чего-л, но всегда возвращает 0.

+4

Идея хорошая, но проблема в сравнении. Используя '==', вы сравниваете значения экземпляра 'StringBuilder', вы должны использовать' equals' для их сравнения. –

+0

Это домашнее задание, случайно? –

+0

@SevaAlekseyev выглядит, вот почему я не отправил ответ. –

ответ

4

Вы не можете использовать == для сравнения String с (или StringBuilder с), вам нужно использовать equals().
Кроме того, вам нужно повернуть StringBuilder сек назад String сек перед сравнением:

не

EDIT: Кроме того, там действительно нет необходимости в первый StringBuilder:

public static int symmetric(int a) { 
    if (Integer.toString(a).equals(new StringBuilder(Integer.toString(a)).reverse().toString())) 
     return a; 
    else 
     return 0; 
} 
+0

спасибо за ответ) Но я снова получаю 0 :(System.out.println (isSymmetric (101)), return 0 ... –

+0

@RomanChyzh: Этот метод дает '121' за' 121' и '0' за' 1231', когда я его тестирую. – Keppil

+0

emm ... извините) awherything хорошо) Я не конвертирую в строку this: (Integer.toString (a)) –

Смежные вопросы