Java stack queue palindrome

I am using stack and queue to check if a string is palindrome. My code works fine for “Anna”, “Level”, but it doesn’t work for “A nut for a jar of tuna!”. I wish someone could help me

    public boolean isPalindrome(String item) {
        clearData();

        String s = item.replaceAll("[\W]", "");
        for (int i = 0; i < s.length(); i++) {

            stack.push(s.substring(i, i+1).toLowerCase());
            queue.enqueue(s.substring(i, i+1).toLowerCase());
        }

        while (! stack.empty() && ! queue.empty()) {
            if (! stack.pop().equals(queue.dequeue())) {
                return false;
            }
        }


        if (!stack.empty() || ! queue.empty())
            return false;

        return true;
    }