我制作了一个程序,将用户输入的字符串存储到队列中然后打印出整个内容,但是我遇到了一些阻止字符串的问题''结束''从打印字符串队列时打印出来。
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 + " ");
}
}
}
答案 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());
}
注意:我不会重构您代码的其他部分。