我正在尝试使用while条件,如果用户输入第一个字符为数字1的字符串,则循环应结束。但是,就我而言,循环永远不会结束。我可能做错了什么?

public static void main(String[] args) {

   ArrayList<Integer> instructions = new ArrayList<Integer>();
    Scanner keyboard = new Scanner(System.in);
    String input = "";
    String termIns = input.substring(0);
   // int termInsInt= Integer.parseInt(termIns);

    do {
        input = keyboard.nextLine();
        int inputInt = Integer.parseInt(input);
        instructions.add(inputInt);
        //String termIns = input.substring(0);

    } while(!termIns.equals("1"));


另外,什么将显示ArrayList中所有元素的列表?

最佳答案

您需要在循环的每次迭代中使用用户输入来更新termIns

do {
        input = keyboard.nextLine();
        int inputInt = Integer.parseInt(input);
        instructions.add(inputInt);
        termIns = input.substring(0);

    } while(!termIns.equals("1"));


同样,substring(0)并不能帮助您


  子串(int beginIndex)
  
  返回一个新字符串,该字符串是的子字符串
  这个字符串。子字符串以指定字符开始
  索引并扩展到此字符串的末尾。


您可以直接在输入上使用startsWith方法,如此处所述

while(!input.startsWith("1"))

10-08 09:03
查看更多