Java 输入和显示数据
我需要输入3部电影的三个细节,然后让它们显示出来,有些问题不允许我在其中输入数据,显示的数据只包含一个单词 以下是作业问题: 为每个私有数据成员和 您还应该编写一个适当的构造函数。您的应用程序应该包括一个测试人员/驱动程序 类,它创建电影类的三个实例并将它们存储在一个数组中。你的测试员 类应该使用for循环来设置电影对象的标题、类型和分级。你应该 同时使用for循环,您应该遍历数组,并显示每个数组的标题、流派和评级 元素,并为每个对象调用playIt()方法 有人能告诉我代码出了什么问题吗?如果问题不多,你能告诉我如何使用数组和for循环吗。我正在使用eclipse 司机班Java 输入和显示数据,java,arrays,eclipse,for-loop,Java,Arrays,Eclipse,For Loop,我需要输入3部电影的三个细节,然后让它们显示出来,有些问题不允许我在其中输入数据,显示的数据只包含一个单词 以下是作业问题: 为每个私有数据成员和 您还应该编写一个适当的构造函数。您的应用程序应该包括一个测试人员/驱动程序 类,它创建电影类的三个实例并将它们存储在一个数组中。你的测试员 类应该使用for循环来设置电影对象的标题、类型和分级。你应该 同时使用for循环,您应该遍历数组,并显示每个数组的标题、流派和评级 元素,并为每个对象调用playIt()方法 有人能告诉我代码出了什么问题吗?如果
class Movie {
//private instances
private String title = "unassigned";
private String genre = "unassigned";
private int rating = 0;
void playIt() {
System.out.println(" - Now Playing");
}
//getters
public String getTitle(){
return title;
}
public String getGenre(){
return genre;
}
public int getRating(){
return rating;
}
//setters
public void setTitle(String title){
this.title = title;
}
public void setGenre(String genre){
this.genre = genre;
}
public void setRating(int rating){
this.rating = rating;
}
}//end class
测试员
import java.util.Scanner;
public class Movie_Tester {
public static void main(String [] args){
Movie one = new Movie();
Movie two = new Movie();
Movie three = new Movie();
//declare variables
String title1, title2, title3;
String genre1, genre2, genre3;
int rating1, rating2, rating3;
Scanner input = new Scanner(System.in);
Scanner user_input = new Scanner(System.in);
Scanner userInput = new Scanner(System.in);
//Enter Details For Movie 1
System.out.println("Please Enter The Title Of Movie 1: ");
title1 = input.next();
System.out.println("Please Enter The Genre Of Movie 1: ");
genre1 = user_input.next();
System.out.println("Please Enter The Rating Of Movie 1: ");
rating1 = userInput.nextInt();
System.out.println(" ");
//Enter Details For Movie 2
System.out.println("Please Enter The Title Of Movie 2: ");
title2 = input.next();
System.out.println("Please Enter The Genre Of Movie 2: ");
genre2 = user_input.next();
System.out.println("Please Enter The Rating Of Movie 2: ");
rating2 = userInput.nextInt();
System.out.println(" ");
//Enter Details For Movie 3
System.out.println("Please Enter The Title Of Movie 3: ");
title3 = input.next();
System.out.println("Please Enter The Genre Of Movie 3: ");
genre3 = user_input.next();
System.out.println("Please Enter The Rating Of Movie 3: ");
rating3 = userInput.nextInt();
System.out.println(" ");
//Set data for Movie one
one.setTitle(title1);
one.setGenre(genre1);
one.setRating(rating1);
one.playIt();
//Print data to screen
System.out.println("Movie 1 Title = : " + one.getTitle());
System.out.println("Movie 1 Genre = : " + one.getGenre());
System.out.println("Movie 1 Rating = : " + one.getRating());
System.out.println(" ");
//Set data for Movie two
two.setTitle(title2);
two.setGenre(genre2);
two.setRating(rating2);
two.playIt();
//Print data to screen
System.out.println("Movie 2 Title = : " + two.getTitle());
System.out.println("Movie 2 Genre = : " + two.getGenre());
System.out.println("Movie 2 Rating = : " + two.getRating());
System.out.println(" ");
//Set data for Movie three
three.setTitle(title3);
three.setGenre(genre3);
three.setRating(rating3);
three.playIt();
//Print data to screen
System.out.println("Movie 3 Title = : " + three.getTitle());
System.out.println("Movie 3 Genre = : " + three.getGenre());
System.out.println("Movie 3 Rating = : " + three.getRating());
input.close();
user_input.close();
userInput.close();
System.out.println(" ");
}//end main method
}//end class
当我运行它时,我得到的是:
Please Enter The Title Of Movie 1:
Step Brothers
Please Enter The Genre Of Movie 1:
Comedy
Please Enter The Rating Of Movie 1:
4
Please Enter The Title Of Movie 2:
Please Enter The Genre Of Movie 2:
Crime Comedy
Please Enter The Rating Of Movie 2:
4
Please Enter The Title Of Movie 3:
O Brother, Where Art Thou?
Please Enter The Genre Of Movie 3:
Please Enter The Rating Of Movie 3:
5
- Now Playing
Movie 1 Title = : Step
Movie 1 Genre = : Comedy
Movie 1 Rating = : 4
- Now Playing
Movie 2 Title = : Brothers
Movie 2 Genre = : Crime
Movie 2 Rating = : 4
- Now Playing
Movie 3 Title = : O
Movie 3 Genre = : Comedy
Movie 3 Rating = : 5
您遇到的问题是,
Scanner
的next()
方法只获取下一个标记,而不是整行。您需要nextLine()
方法
我不知道你在课堂上是否已经做到了这一点,但通常你想使用扫描器
和try-with-resources块。这将确保无论发生什么情况,您的扫描仪
对象都是关闭的(这是在最后
块中关闭它们的语法糖)
您也不需要为每个输入使用单独的扫描仪,尽管因为您将同时需要readLine()
和nextInt()
,所以您确实需要其中两个(scanner
如果您在使用nextInt()
之后尝试readLine()
)会出现问题
通过不使用循环,您也在艰难地完成任务。当您使用for循环时,代码更简单、更短。您的老师要求您使用数组和for循环,但没有向您解释如何使用它们?难道没有课本或课堂笔记可以参考吗
import java.util.Scanner;
public class MovieTester {
public static void main(String [] args){
Movie[] movies = new Movie[3];
try (Scanner string_input = new Scanner(System.in);
Scanner int_input = new Scanner(System.in);) // Try with resources
{
for (int i = 0; i < 3; i++) {
Movie movie = new Movie();
// Enter Details For Movie
System.out.println("Please Enter The Title Of Movie: ");
movie.setTitle(string_input.nextLine());
System.out.println("Please Enter The Genre Of Movie: ");
movie.setGenre(string_input.nextLine());
System.out.println("Please Enter The Rating Of Movie: ");
movie.setRating(int_input.nextInt());
System.out.println();
movies[i] = movie;
}
// Play Movies
for (int i = 0; i < movies.length; i++) {
Movie movie = movies[i];
System.out.println("Title: " + movie.getTitle());
System.out.println("Genre: " + movie.getGenre());
System.out.println("Rating: " + movie.getRating());
movies[i].playIt();
System.out.println();
}
}
}//end main method
}//end class
import java.util.Scanner;
公映级电影{
公共静态void main(字符串[]args){
电影[]电影=新电影[3];
try(扫描器字符串输入=新扫描器(System.in);
Scanner int_input=new Scanner(System.in);//使用资源进行尝试
{
对于(int i=0;i<3;i++){
电影=新电影();
//输入电影的详细信息
System.out.println(“请输入电影标题:”);
movie.setTitle(string_input.nextLine());
System.out.println(“请输入电影类型:”);
movie.setgreen(string_input.nextLine());
System.out.println(“请输入电影分级:”);
movie.setRating(int_input.nextInt());
System.out.println();
电影,;
}
//播放电影
for(int i=0;i