2017-02-21 44 views
0

Целью является фраза, введенная пользователем, и сообщить им, является ли это палиндром или нет. Он должен иметь массив и метод. У меня возникают проблемы с моим массивом и результатом возврата для моего метода. Я кое-что отредактировал, но у меня все еще возникают проблемы с логической частью. Независимо от того, что я вхожу, я становлюсь ложным. Я также хотел бы убедиться, что если бы были введены какие-либо пробелы, они будут удалены. Я попробовал replaceAll, но не смог заставить это работать. Спасибо вам за помощь.Проверка палиндромов с использованием массива

import java.util.Scanner; 
public class palindrome { 

public palindrome() { 
    // TODO Auto-generated constructor stub 
} 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

      Scanner keyboard = new Scanner(System.in); 
      int another=1; 
      boolean results; 

      System.out.println("Please enter a phrase to be checked:"); 
      String input = keyboard.next(); 
      if (checkpalindrome(input)) 
       System.out.println("Yes, the phrase is a palindrome"); 
      else 
       System.out.println("No, the phrase is not a palindrome"); 

      System.out.println("Would you like to try another one? \"1 or 0\""); 
      another = keyboard.nextInt(); 

} 
public static boolean checkpalindrome(String input){ 


    char array2 = 0; 
char[] array1 = input.toCharArray(); 
StringBuilder sb = new StringBuilder(input.length()); 

for(int i=0; i<array1.length/2; i++) 
{ 
    array2 = array1[i]; 
    array1[i]=array1[array1.length-1-i]; 
    array1[array1.length-1-i]=array2; 
} 

System.out.println(input); 
System.out.println(array1); 
System.out.println(test.equals(array1)); 

return(input.equals(array1)); 

} 
} 
+0

В чем проблема? Помимо того факта, что 'checkpalindrome' ничего не делает. – Necoras

+0

'checkpalindrome (input)' предполагается возвращать логическое значение, проверяя 'if (true)' всегда будет 'true', вы, вероятно, захотите сделать что-то вроде:' if (checkpalindrome (input)) ... ' – alfasin

+0

Код который запускается в строке 'char [] array1 = new char [80];' и до конца не находится внутри какого-либо метода - он не будет компилировать – alfasin

ответ

0

Вы также можете использовать этот метод, чтобы проверить, является ли строка палиндром или нет.

public static boolean pallindrom(String S) 
{ 
    char arr[] = S.toCharArray(); 

    int flag = 0; 

    for(int i = 0 ; i < (arr.length+1)/2 ; i++) 
    { 
     if(arr[i] != arr[arr.length-1-i]) 
     { 
      flag = 1; 
      break; 
     } 
    } 

    if(flag == 0) 
     return true; 
    else 
     return false; 
}