Java中的扫描行

Java中的扫描行,java,input,java.util.scanner,Java,Input,Java.util.scanner,代码怎么了?它不允许我为每一个版本写输入。我想知道每个版本有多少版本,年份和城市,它跳转到循环中,不允许我输入 public class Competition { private static ArrayList<Edition> editions = new ArrayList<Edition>(); private static Scanner scan = new Scanner(System.in); public static vo

代码怎么了?它不允许我为每一个版本写输入。我想知道每个版本有多少版本,年份和城市,它跳转到循环中,不允许我输入

public class Competition {

    private static ArrayList<Edition> editions = new ArrayList<Edition>();
    private static Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {

        String newCity = null;
        int newYear = 0;
        int itineration = 0;
        int numberEditions = 0;
        Edition newEdition = new Edition(newCity, newYear);

        System.out.println("How many editions would you like to create?");
        numberEditions = scan.nextInt();

        while (itineration < numberEditions) {
            System.out.println("\nEnter the city and year of the Edition you would"
                    + " like to create: ");

            System.out.println("Year: ");
            newYear = scan.nextInt();
            System.out.println("City: ");
            newCity = scan.nextLine();

            editions.add(newEdition);
            itineration++;
        }

        for (int index = 0; index < editions.size(); index++) {
            System.out.println("Music Festival'" + editions.get(index).getYear()
                    + ", "
                    + editions.get(index).getCity());

        }
    }
}
公开课竞赛{
私有静态ArrayList Edition=新ArrayList();
专用静态扫描仪扫描=新扫描仪(System.in);
公共静态void main(字符串[]args){
字符串newCity=null;
int newYear=0;
int巡回=0;
整数预测=0;
版本newEdition=新版本(newCity,newYear);
System.out.println(“您希望创建多少版本?”);
numberditions=scan.nextInt();
while(行程
您需要在while循环中创建
Edition
的新实例

    while (itineration < numberEditions) {
        System.out.println("\nEnter the city and year of the Edition you would"
                + " like to create: ");

        System.out.println("Year: ");
        newYear = scan.nextInt();
        System.out.println("City: ");
        newCity = scan.nextLine();

       Edition newEdition = new Edition(newCity, newYear);
        editions.add(newEdition);
        itineration++;
    }
while(行程
如果您不知道如何使用Scanner类,它会出现一些问题。R我建议在使用任何一个对象之前研究这两个对象。

您犯了两个错误

  • 在循环内创建新版本实例
  • 使用
    Scanner.next()
    获取输入
    String
    <代码>扫描仪。nextLine()无效
  • 工作代码:

     while (itineration < numberEditions)
            {
                System.out.println("\nEnter the city and year of the Edition you would" + " like to create: ");
    
                System.out.println("Year: ");
                newYear = scan.nextInt();
                System.out.println("City: ");
                newCity = scan.next();
    
                editions.add(new Edition(newCity, newYear));
                itineration++;
            }
    
    while(行程
    你需要在阅读一年后消耗额外的行数。您还需要为每个输入创建新版本,并将其添加到while循环的列表中:

    while (itineration < numberEditions) {
        System.out.println("\nEnter the city and year of the Edition you would"
                + " like to create: ");
    
        System.out.println("Year: ");
        newYear = scan.nextInt();
    
        scan.nextLine();
    
        System.out.println("City: ");
        newCity = scan.nextLine();
    
        Edition newEdition = new Edition(newCity, newYear);
        editions.add(newEdition);
        itineration++;
    }
    
    while(行程

    希望它有助于为扫描仪创建新对象。现在您可以输入值

    newCity = new Scanner(System.in).nextLine();
    

    您得到的错误是什么?您使用的输入是什么?不是错误。它不允许我输入。输入将是一个int,当要求输入城市时,输入将是一个字符串。@elliotfrisch@DirkyJerkyThank you@Sanjeev!这就是我需要的。我不能给代表,因为我没有足够的,否则我会给!非常感谢!