2014-03-16 4 views
-3

Мне нужно сохранить ввод пользователя в массиве, но у меня возникли проблемы с этим. Может ли кто-нибудь предложить какой-нибудь совет?Чтение ввода пользователя в массив

import java.util.Scanner; 

public class EmployeeManagement { 

    Scanner s = new Scanner(System.in); 
    Employee e = new Employee(); 
    Employee[] arrayOfEmp = new Employee[2];   //Fields 
    public static int index; 

    public void addRecord(Employee userE, int index){    //Add method 
    while(index<arrayOfEmp.length){ 
     System.out.println("Please enter Employee Id : "); 
     e.setEmployeeId(s.next()); 
     System.out.println("Please enter Employee Name : "); 
     e.setName(s.next()); 
     this.arrayOfEmp[index]=userE; 
     index++; 
    } 
+0

Можете ли вы опубликовать полный код. Трудно понять, что вы пытаетесь сделать. – Sachin

ответ

1

Это должно быть потому, что вы не добавляете правильное значение в свой массив. Вы добавляете «userE», который является параметром, но вы устанавливаете значения внутри «e», что является другим экземпляром Employee.

1
Scanner s = new Scanner(System.in); 
Employee[] arrayOfEmp = new Employee[2];   //Fields 
public int index; 

public int addRecord(int index){    //Add method 
    while(index<arrayOfEmp.length){ 
     Employee e = new Employee(); 
     System.out.println("Please enter Employee Id : "); 
     e.setEmployeeId(Integer.parseInt(s.nextLine())); 
     System.out.println("Please enter Employee Name : "); 
     e.setName(s.nextLine()); 
     this.arrayOfEmp[index++]=e; 
     return index; 
    } 

вызвать его, пожалуйста, используйте index = addRecord(index); тогда переменная индекс будет обновляться местным индексом вар в методе.

s.next() изменено на nextLine()

+1

+1 для работы с несколькими различными проблемами. Но я не думаю, что для 'arrayOfEmp' имеет смысл быть нестационарным, а' index' - статическим, так как 'index' - это количество вещей, которые вы уже добавили в' arrayOfEmp'. Они должны либо быть нестатическими, либо статическими. Кроме того, я не думаю, что 'index' должен быть передан в метод. –

+0

спасибо за комментарий. Я внес изменения. – RMachnik

0

Так, имена, например, [Субаш PRAKASH] может быть с пробелами вы должны использовать nextLine().

Для любых других целых чисел используйте nextInt()

А и должны называть, используя это в качестве ссылки: Employee e = new Employee();

Смежные вопросы