删除用Java打印的最后一个字符串

时间:2016-08-04 17:23:52

标签: java

我制作了一个程序,将用户输入的字符串存储到队列中然后打印出整个内容,但是我遇到了一些阻止字符串的问题''结束''从打印字符串队列时打印出来。

public class Test {

    protected static String testinfo;
    Test() {
        testinfo= "blank";
    }

    public static void setTest(String newInfo){
        testInfo = newInfo;
    }

    public static String getTest(){
        return testInfo;
    }

    private static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<String>();
        String newInfo;

        System.out.println("Inset information for the test or quit by typing end ");

        while (true) {
            System.out.println("Insert information: ");
            newInfo = input.nextLine();

            Test.setTest(newInfo);

            queue.offer(Test.getTest());

            if (newInfo.equals("end")){
                break;
            }
        }

        while(queue.peek() !=null) {
            String x = queue.poll();
            if(x.contains("end")) {
                queue.remove("end");
            }
            System.out.println(x + " ");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在while循环中,在检查中断条件之前,您已经向队列提供了用户输入的字符串 - end。事实上,字符串 - end已入队。

在while循环中重新安排语句可以解决您面临的问题

    while (true) {
        System.out.println("Insert information: ");
        newInfo = input.nextLine();
        if (newInfo.equals("end")){
            break;
        }
        Test.setTest(newInfo);
        queue.offer(Test.getTest());
    }

注意:我不会重构您代码的其他部分。