LearningGeek Ответов: 2

Как получить список палиндромных и непалиндромных строк от пользователя и отобразить только палиндромные строки


Вопрос
Учитывая список строк (который содержит как палиндромы, так и непалиндромы), напишите метод, который возвращает список всех палиндромов
строки.
Совет: Используйте ссылки на статические методы функциональных интерфейсов


В моем Java-коде я могу взять только одну строку и проверить, является ли она палиндромом или нет, используя статическую функцию isPalindrome (), как это требуется в вопросе. Но чтобы решить этот вопрос, мне нужно взять список, содержащий как палиндромные, так и Непалиндромные строки, и отобразить другой список, содержащий только палиндромные строки.
Пожалуйста, проверьте мой код и помогите мне решить эту проблему. Я сформулировал этот вопрос выше.

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

import java.util.*;
public class CheckPalindrome{
	public static void main(String args[]){
		Scanner input=new Scanner(System.in);
		String palindrome;
		palindrome=input.nextLine();
		ArrayList<String> p= new ArrayList<String>();
		buildAL(p,palindrome);
		if(isPalindrome(p))
			System.out.println(palindrome);
		else
			System.out.println("No palindromes");
	}
	static void display(ArrayList arr){
		for(int i=0;i<arr.size();++i)
			System.out.print(arr.get(i));
		System.out.println();
	}
	static void buildAL(ArrayList<String> pword,String word){
		for(int i=0;i<word.length();++i)
			pword.add(word.charAt(i) + "");
	}
	static boolean isPalindrome(ArrayList<String> word){
		ArrayList<String> rword= new ArrayList<String>();
		rword.addAll(word);
		Collections.reverse(rword);
		for(int i=0;i<word.size();++i)
			if(!(rword.get(i).equals(word.get(i))))
				return false;
		return true;
	}
}

2 Ответов

Рейтинг:
1

OriginalGriff

Вы все еще не закончили это домашнее задание?
три дня назад вы задавали тот же вопрос: Как решить этот код?[^]

К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Как вы его используете, зависит от вашей системы компилятора, но быстрый поиск в Google имени вашей IDE и "отладчика" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Рейтинг:
0

Patrice T

Цитата:
В моем Java-коде я могу взять только одну строку и проверить, является ли она палиндромом или нет
Но чтобы решить этот вопрос, мне нужно взять список, содержащий как палиндром, так и Непалиндром

Я думаю, что добавление цикла в main() может помочь.