どのように私は、ユーザー入力を取得し、別のクラスである配列にそれを格納しますか?|| ジャワ

Sharleneロバーツ:

私は(この場合は/名の文字列になります)複数のユーザ入力を取り、別のクラスである配列にそれを格納しようとしている
私ではなく、配列のリストを使用するには多くの助言を研究してきたものに基づいていますが、この場合、アレイが使用されるように指定されました。
私は、入力として整数を受け取るように意図されたコードを使用して問題破壊することができたと私の代わりに文字列を受信するために変更を加えた、しかし、私は、例えば、入力された場合には、3名が入力されるようにしており、コード名前を入力するために私を促した、唯一の2を入力することを許可された
配列が初期化されたクラスをここにあります

    public class Movie {
    private String id;
    private String name;
    private String description;
    private String[] genre;
    private String[] actors;
    private String[] language;
    private String countryOfOrigin;
    private Map<String, Integer> ratings;


    //Constructor
    public Movie(String id, String name, String description, String[] genre, String[] actors, String[] language, String countryOfOrigin, Map<String, Integer> ratings){
        this.id = id;
        this.name = name;
        this.description = description;
        this.genre = genre;
        this.actors = actors;
        this.language = language;
        this.countryOfOrigin = countryOfOrigin;
        this.ratings = ratings;
    }

    //setters
    public void setid(String id){
        this.id = id;
    }

    public void setname(String name){
        this.name = name;
    }

    public void setDescription(String description){
        this.description = description;
    }

    public void setGenre(String[] genre){
        this.genre = genre;
    }

    public void setActors(String[] actors){
        this.actors = actors;
    }    

//getters
    public String getId(){
        return id;
    }

    public String getName(){
        return name;
    }

    public String getDescription(){
        return description;
    }

    public String[] getGenre(){
        return genre;
    }

    public String[] getActors(){
        return actors;
    }

ここで名前を入力する人のためのコードをメインファイルです

public class Main{

    public static void main(String[] args) {
       //Scanner initialization
       Scanner input = new Scanner(System.in);

       System.out.println("How many actors star in this movie?: ");
            int num = input.nextInt();

            String array[] = new String[num];
            System.out.println("Enter the " + num + " actors starred now");

            for (int i = 0; i < array.length; i++){
                array[i] = input.nextLine();
            }
}

私の問題は、私は地元のアレイ「アレイ」に値を最初に格納する必要がある場合、私はわからないですし、クラス映画著名人のアレイに前記アレイを割り当てるか、私は直接、クラス映画著名配列に値を割り当てる必要がある場合。もしそうなら、私はそれを行うには方法がわかりませんよ。
私の他の問題は、私は記憶されるべき3名を入力した場合、それだけで私は2を入力することができ、上述したものです

アービンド・クマールのAvinash:

私の問題は、私は地元のアレイ「アレイ」に値を最初に格納する必要がある場合、私はわからないですし、クラス映画著名人のアレイに前記アレイを割り当てるか、私は直接、クラス映画著名配列に値を割り当てる必要がある場合。もしそうなら、私はそれを行うには方法がわかりませんよ。

次のように実行します。

import java.util.Arrays;
import java.util.Scanner;

class Movie {
    private String[] actors;
    private String director;
    private int year;

    Movie() {
    }

    public Movie(String[] actors, String director, int year) {
        this.actors = actors;
        this.director = director;
        this.year = year;
    }

    public String[] getActors() {
        return actors;
    }

    public void setActors(String[] actors) {
        this.actors = actors;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    @Override
    public String toString() {
        return "Movie [actors=" + Arrays.toString(actors) + ", director=" + director + ", year=" + year + "]";
    }
}

public class Main {
    public static void main(String[] argv) throws Exception {
        // Scanner initialization
        Scanner input = new Scanner(System.in);

        System.out.print("How many actors star in this movie?: ");
        int num = Integer.parseInt(input.nextLine());

        String array[] = new String[num];
        System.out.println("Enter the " + num + " actors starred now");

        for (int i = 0; i < array.length; i++) {
            array[i] = input.nextLine();
        }

        System.out.print("Enter the name of the director:");
        String director = input.nextLine();

        System.out.print("Enter the release year:");
        int year = Integer.parseInt(input.nextLine());

        Movie movie1 = new Movie(array, director, year);

        // Alternatively
        Movie movie2 = new Movie();
        movie2.setActors(array);
        movie2.setDirector(director);
        movie2.setYear(year);

        // Display
        System.out.println(movie1);
    }
}

私の他の問題は、私は記憶されるべき3名を入力した場合、それだけで私は2を入力することができ、上述したものです

使用Scanner::nextLine代わりにScanner::nextInt後に改行文字(Enter)をので、あなたが直面している問題があるintの入力が割り当てられていますarray[0]チェックスキャナは次の使用した後、nextLine()を飛ばしている()またはnextFoo()?詳細については。

サンプルを実行します。

How many actors star in this movie?: 2
Enter the 2 actors starred now
James
Bond
Enter the name of the director:Xyz
Enter the release year:2010
Movie [actors=[James, Bond], director=Xyz, year=2010]

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=284502&siteId=1
おすすめ