ArrayList扫描仪输入帮助Java

ArrayList扫描仪输入帮助Java,java,arraylist,Java,Arraylist,我试图编写一个代码,对给定的数字列表进行排序,并尝试使用ArrayList进行排序。我使用while循环来允许重复输入。这是我的代码: import java.util.Scanner; import java.util.ArrayList; public class sortinggg { public static Scanner keyboard = new Scanner(System.in); public static ArrayList<Integer&

我试图编写一个代码,对给定的数字列表进行排序,并尝试使用ArrayList进行排序。我使用while循环来允许重复输入。这是我的代码:

import java.util.Scanner; 
import java.util.ArrayList;

public class sortinggg {

    public static Scanner keyboard = new Scanner(System.in);
    public static ArrayList<Integer> number = new ArrayList<Integer>();

    public static void main (String [] args) {

        int count= 0;

        System.out.println("Enter your numbers.");

        while (keyboard.hasNextInt()); {
            number.add(keyboard.nextInt()); 
        }
import java.util.Scanner;
导入java.util.ArrayList;
公共类排序{
公共静态扫描仪键盘=新扫描仪(System.in);
public static ArrayList number=new ArrayList();
公共静态void main(字符串[]args){
整数计数=0;
System.out.println(“输入您的号码”);
while(keyboard.hasNextInt()){
number.add(keyboard.nextInt());
}
整数计数现在是不相关的,因为我只在对列表排序时使用它

问题是,在我输入数字后,即使我输入一个字符串(例如),程序也不会转到下一行代码。我在这里遗漏了什么吗

另外,我已经厌倦了查找以前在这个主题上提出的问题,但建议的解决方案都不适合我。提前感谢您的帮助!

试试这个:

import java.util.ArrayList;
import java.util.Scanner;

public class Main
{
    public static void main(String args[])
    {
        Scanner keyboard = new Scanner(System.in);
        ArrayList<Integer> number = new ArrayList<Integer>();

        System.out.println("Enter your numbers:");

        while (keyboard.hasNextInt()) {
            number.add(keyboard.nextInt()); 
        }
    }
} 
import java.util.ArrayList;
导入java.util.Scanner;
公共班机
{
公共静态void main(字符串参数[])
{
扫描仪键盘=新扫描仪(System.in);
ArrayList编号=新的ArrayList();
System.out.println(“输入您的号码:”);
while(keyboard.hasNextInt()){
number.add(keyboard.nextInt());
}
}
} 
修改:

  • while(keyboard.hasNextInt());
    删除
    结尾的分号(;)
  • 此处
    while loop
    将继续向
    数组列表添加值,直到您提供int值。

    尝试以下操作:

    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Main
    {
        public static void main(String args[])
        {
            Scanner keyboard = new Scanner(System.in);
            ArrayList<Integer> number = new ArrayList<Integer>();
    
            System.out.println("Enter your numbers:");
    
            while (keyboard.hasNextInt()) {
                number.add(keyboard.nextInt()); 
            }
        }
    } 
    
    import java.util.ArrayList;
    导入java.util.Scanner;
    公共班机
    {
    公共静态void main(字符串参数[])
    {
    扫描仪键盘=新扫描仪(System.in);
    ArrayList编号=新的ArrayList();
    System.out.println(“输入您的号码:”);
    while(keyboard.hasNextInt()){
    number.add(keyboard.nextInt());
    }
    }
    } 
    
    修改:

  • while(keyboard.hasNextInt());
    删除
    结尾的分号(;)

  • 在这里,
    while loop
    将继续向
    数组列表添加值,直到您提供int值。

    首先,
    while
    之后的
    是错误的。它不允许您执行主体。那么您将如何跳过该循环。您可以要求最终用户输入一些特殊值并使用它打破循环。下面给出了正确的版本

    public static void main(String[] args) {
            int count = 0;
    
            System.out.println("Enter your numbers or -1 to skip.");
    
            while (keyboard.hasNextInt()) {
                int num = keyboard.nextInt();
                if (num == -1) {
                    break;
                }
                number.add(num);
    
            }
    
            System.out.println(number);
    
        }
    

    首先,
    紧跟在
    之后,而
    是错误的。它不允许您执行正文。那么您将如何跳过循环。您可以要求最终用户输入一些特殊值并使用它来打破循环。下面给出了更正的版本

    public static void main(String[] args) {
            int count = 0;
    
            System.out.println("Enter your numbers or -1 to skip.");
    
            while (keyboard.hasNextInt()) {
                int num = keyboard.nextInt();
                if (num == -1) {
                    break;
                }
                number.add(num);
    
            }
    
            System.out.println(number);
    
        }
    

    while(keyboard.hasNextInt());{
    删除分号。分号结束循环正文。
    number.add(keyboard.nextInt());
    位于不同的(非循环)块中。可能与@Elliott Frisch有重复之处!@elliottftish修复了它!感谢您的帮助,Java新手和一般的编码。
    while(keyboard.hasNextInt());{
    删除分号。分号结束循环正文。
    number.add(keyboard.nextInt());
    位于不同的(非循环)块中。可能与@Elliott Frisch有重复之处!@Elliottfitsch修复了它!感谢您的帮助,对Java和一般编码都是新手。。