Почему я должен дважды кодировать входной сканер, иначе ввод имени будет пропущен и перейдет к вводу адреса? - PullRequest
0 голосов
/ 16 февраля 2019

Я изучаю Java.Возможно, это не проблема, но ...

Я использую среду IDE NetBeans 8.2, кодирование для сохранения информации о трех учениках через массив 3 измерений.Этот код работает нормально.Но почему я должен дважды написать сканер в разделе ввода имени в main ?Или ввод имени будет пропущен и перейдет к вводу адреса.

package testing;
import java.io.*;
import java.util.Scanner;

public class Testing{
    public Testing(char d[][][],int num){
        BufferedWriter input;
        int dim,bar,col;
        String dat,no;
        dat="";
        no="";
        try{
            input= new BufferedWriter(new FileWriter("Data.txt",true));
            for(dim=0;dim<num;dim++){no=no+(dim+1);
                input.write(no);no="";
                input.newLine();
                for(bar=0;bar<3;bar++){
                    for(col=0;col<d[dim][bar].length;col++){
                        dat=dat+d[dim][bar][col];
                        input.write(dat);dat="";}
                    input.newLine();}
            }
            input.close();
        }
        catch(IOException e){
            System.out.println("There was a problem:" + e);
        }
    }

    public static void main(String[] args){
        Scanner k=new Scanner(System.in);
        String str="";
        int num,dim,j;
        System.out.print("Number of student ");
        num=k.nextInt();
        dim=0;
        j=0;
        char[][][]d=new char[num][3][j];
        for(dim=0;dim<num;dim++){
            System.out.print("Name ");k.nextLine();str=k.nextLine();
            d[dim][0]=str.toCharArray();
            System.out.print("Address ");str=k.nextLine();
            d[dim][1]=str.toCharArray();
            System.out.print("Score ");str=k.next();
            d[dim][2]=str.toCharArray();
        }
        Testing Testing = new Testing(d,num);
    }
}
...