<identifier> ошибка при попытке идентифицировать палиндромы со стеком? - PullRequest
0 голосов
/ 04 марта 2019

Я работаю над заданием для определения палиндромов, и мне нужно использовать стек для этого.В настоящее время я получаю сообщение об ошибке: ожидается идентификатор:

palStack.push (nextChar);

Мой профессор сказал, что я пытаюсь использовать Stack в качестве необработанного типа, поэтому я получаю сообщение об ошибке, но я не уверен, что именно он имеет в виду?Я довольно плохо знаком со структурами данных, поэтому любые советы по использованию стека будут оценены!

Вот раздел, по которому у меня возникла проблема:

public static void main(String[] args){
    int replay = 0; 
    Stack<char> palStack = new Stack<>(); 
    char nextChar; 
    int characterCount;
    String phrase, emptyPhrase = "", replayAns; 
    @SuppressWarnings("unchecked")
    Scanner reader = new Scanner(System.in); 

    while(replay != 1){
        System.out.println("Enter phrase: ");
        phrase = reader.nextLine(); 
        characterCount = phrase.length(); 

        System.out.print("Original phrase: "); 

        for(int i = 0; i < characterCount; i++){
            nextChar = phrase.charAt(i); 

            @SuppressWarnings("unchecked")
            palStack.push(nextChar);    
            System.out.print(nextChar); 
        }
    }
}

1 Ответ

0 голосов
/ 04 марта 2019

Проблема в этой строке:

Stack<char> palStack = new Stack<>();

Вы не можете использовать примитивы / необработанные типы (в данном случае char) как универсальный тип (https://docs.oracle.com/javase/tutorial/java/generics/types.html). Так что вам просто нужноиспользуйте ссылочный тип, который java.lang.Character:

Stack<Character> palStack = new Stack<>();
...