有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于堆栈和队列的java字符串

我正在读一个字符串,但在它被推入堆栈并排队之前,我需要消除所有空格和标点符号,同时保持顺序

我是Java新手,已经尝试了下面的代码抛出异常

     for (int i = 0;i < input.length(); i++){
            String character = Character.toString(input.charAt(i));
            if (charChecker(character)){
                stack.push(character);
                queue.enqueue(character);
            }
        }

    private static boolean charChecker (String character) {
        if (character.equals(" ") || character.equals(".") ||
            character.equals("?") || character.equals("!") ||
            character.equals(",") || character.equals(";") ||
            character.equals(":") || character.equals("-"))
            return false;
        else
            return true;
    }

    int diff = 0;
    for (int i = 0; i < input.length(); i++) {
        String char1 = stack.pop();
        String char2 = queue.dequeue();
        if (!(char1.equalsIgnoreCase(char2))) {
            diff++;
        }
    }

输出:

Enter file name: input1.txt
evil live
Exception in thread "main" java.util.EmptyStackException
  at Stack.pop(Stack.java:22)
  at Palindrome.main(Palindrome.java:57)

共 (0) 个答案