为什么这个方法不适合我,创建一维数组?

时间:2018-05-12 13:17:09

标签: java methods

我是java的初学者,我想使用Scanner类创建一个方法,我可以在另一种方法中使用它:

package my_train_1;

import java.util.Scanner;

public class Use_methods {

    public static void main(String[] args) {
        System.out.println("voila les nouvelles chaines de caractéres que vous vennez de saisir");
        saisir(sclavier);

    } 

    public static void saisir(String sclavier[]) {
        int p=0;
        while(p<5) {
            System.out.print("saisir une chaine de caracter");
            Scanner reader=new Scanner(System.in);
            sclavier[p]=reader.nextLine();
            p++;
        }

    }

}

那么,我可以做些什么来正确编译它?

2 个答案:

答案 0 :(得分:0)

当您致电saisir(sclavier);时,sclavier无效,您必须为方法saisir(new String[5]);提供新数组

如果您需要在之后使用它,请将其保存在变量中:

String[] res = new String[5];
saisir(res);
System.out.println(Arrays.toString(res));

此外,每次只使用一个Scanner,而不是新的,不需要

public static void saisir(String sclavier[]) {
    int p = 0;
    Scanner reader = new Scanner(System.in);
    while (p < 5) {
        System.out.print("saisir une chaine de caracter");
        sclavier[p] = reader.nextLine();
        p++;
    }
}

答案 1 :(得分:0)

package my_train_1;

import java.util.Scanner;

public class Use_methods {

public static void main(String[] args) {
    System.out.println("voila les nouvelles chaines de caractéres que vous vennez de saisir");
    int p=0;
    String[] sclavier = new String[5];
    Scanner reader=new Scanner(System.in);
    while(p<5) {
        System.out.print("saisir une chaine de caracter");            
        sclavier[p]=reader.nextLine();
        p++;
    }

}