Java程序错误-字符串输入不可用

Java程序错误-字符串输入不可用,java,string,input,runtime-error,Java,String,Input,Runtime Error,这是我的代码: package Class; import java.util.Scanner; public class Bicycle { public static int units; public static int courseNum; public static String courseName; public Bicycle(int startUnits, int startNum, String startName)

这是我的代码:

package Class;

import java.util.Scanner;

public class Bicycle 
{    
    public static int units;
    public static int courseNum;
    public static String courseName;

    public Bicycle(int startUnits, int startNum, String startName) 
    {
        units = startUnits;
        courseNum = startNum;
        courseName = startName;
    }

    public static int setUnits(int newValue) 
    {
        units = newValue;
        return units;
    }

    public static int setNum(int newValue)
    {
        courseNum = newValue;
        return courseNum;
    }

    public static String setName(String newValue) 
    {
        courseName = newValue;
        return courseName;
    }

    public class subClass extends Bicycle 
    {
        public int randVariable;

        public subClass(int startUnits, int startNum, String startName) 
        {
            super(startUnits, startNum, startName);
        }   

        public void randVariable(int newValue) 
        {
            randVariable = newValue;
        }   
    }

    public static void main(String args[]) 
    {
        int BaseUnits;
        int BaseCourseNum;
        String BaseCourseName;

        int FinalUnits;
        int FinalCourseNum;
        String FinalCourseName;

        Scanner entries = new Scanner(System.in);

        BaseUnits = entries.nextInt();
        BaseCourseNum = entries.nextInt();
        BaseCourseName = entries.nextLine();

        FinalUnits = setUnits(BaseUnits);
        FinalCourseNum = setNum(BaseCourseNum);
        FinalCourseName = setName(BaseCourseName);

        System.out.printf("The Course ");
        System.out.println(FinalCourseName);
        System.out.printf(" (CIS %d) is worth %d units.", FinalCourseNum, FinalUnits);
    }
}
我试图做的是得到一个字符串输入,虽然我使用的代码可以做到这一点,但程序实际上从未要求我输入该字符串

Scanner entries = new Scanner(System.in);

        BaseUnits = entries.nextInt();
        BaseCourseNum = entries.nextInt();
        BaseCourseName = entries.next(); //<--
使用next而不是nextLine;
请阅读本文以进一步澄清。

您的代码片段将从下面一行的用户处获取输入

扫描仪条目=新的ScannerSystem.in

    BaseCourseName = entries.nextLine();
    String line = br.readLine();
您可以将此更改为

    BaseCourseName = entries.nextLine();

您也可以从BufferedReader获取输入,如下所示

BufferedReader br=新的BufferedReadernew InputStreamReaderSystem.in

    BaseCourseName = entries.nextLine();
    String line = br.readLine();

该程序从不要求您输入,但可能等待您输入实例字段的程序不应该是静态的!另外,不要命名你的包类。可能你的问题是:是的,你真的需要创建一个Bicycle的实例,而不是像@ElliottFrisch那样使用静态方法said@Jonjongot它也没有等待。它只是跳过它,继续前进。