2014-05-22 3 views
0

Хорошо. Я посмотрел, как сделать палиндромы, и похоже, что использование метода reverse() кажется моим лучшим выбором. Однако в моем коде я столкнулся с ошибкой, которую я не понимаю.Использование команды reverse() в Java?

import java.util.*; 
public class retreiveInput 
{ 
    private Scanner input = new Scanner(System.in); 
    private int fives = 0; 
    public retreiveInput(){ 

     fives = input.nextInt(); 

    } 
    public void check() 
    { 
     while(fives < 9999 || fives > 100000) 
     { 
      System.out.println("The number does not work! It is NOT 5 digits!"); 
      fives = input.nextInt(); 
     } 
     String five = Integer.toString(fives); 
     five.equalsIgnoreCase(new StringBuilder(five).reverse().toString()); 
      if(five = five.reverse()){ 

     } 
    } 
} 

С обратной стороны в коде, это дает мне следующую ошибку. «Метод reverse() не определен для типа String«

Любая идея, как исправить это? Предполагается, что программа должна быть в том, что в точке reverse() оператора if программа должна проверять, равна ли значение пяти обратным пяти.

+2

Класс String не имеет метода reverse(), но StringBuilder делает –

+0

Так как же я могу использовать StringBuilder для исправления оператора if? – user3348422

+0

@LuiggiMendoza Я понял, что ошибка была на '5.reverse()'. 'five' имеет тип String –

ответ

4
if(five = five.reverse()) 

В приведенном выше коде пять представляет собой строку. reverse - это метод StringBuilder(). У вас также есть некоторые ошибки, присутствующие в вашем операторе if. Вы хотите это

StringBuilder sbFive = new StringBuilder(five) 
if (five.equals(sbFive.reverse().toString())) 

Также обратите внимание, что вы можете сделать это немного быстрее.

Способ сделать это быстрее - начать с каждого конца и встретиться посередине во время сравнения. он принимает половину исполнений :)

+0

Nevermind. Спасибо огромное! Код, наконец, работает! Я потратил часы в библиотеке, пытаясь это исправить. – user3348422

+0

@ user3348422 Извините, у вас была опечатка с круглой скорлупой. –

+0

@ user3348422, пожалуйста, примите этот ответ, когда сможете, и, пожалуйста, не редактируйте рабочий код в свой первоначальный ответ. Это будет путать будущих посетителей –

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