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它也没有等待。它只是跳过它,继续前进。