2013-09-20 6 views
0

Je souhaite ajouter toutes les entrées utilisateur que je viens de recevoir et les mettre dans une seule position de tableau.Ajouter plusieurs objets à un tableau

Scanner sc = new Scanner(System.in); 
int cit = 0; 

//cit = Integer.parseInt(sc.nextLine()); 

/*if statement to ensure a value greater than 0 and less than or equal to 50 is 
* entered. 
*/ 
//System.out.println(cit); 
System.out.println("Welcome to OswegoNote - your friendly Citation Manager."); 
boolean accepted = false; 
Index citationIndex; 
Citation currentCitation; 
while (!accepted) { 
    System.out.println("How many citations would you like to store today? (between 0 and 50):"); 
    cit = Integer.parseInt(sc.nextLine()); 
    int citcounter = cit; 
    if (cit <= 50) { 

     if (cit > 0) { 
      accepted = true; 
      citationIndex = new Index(cit); 

     } else { 
      System.out.println("Error: please enter a number between 0 and 50."); 
     } 

    } else { 
     System.out.println("Error: please enter a number between 0 and 50."); 
    }//end if <=50 

}//end while loop 



for (int i = 0; i < cit; i++) { 

    currentCitation = new Citation(""); 
    currentCitation.updateId(i); 

    System.out.println("Please enter publication name (or 'quit' to quit):"); 
    String name = sc.nextLine(); 
    currentCitation.setName(name); 


    System.out.println("Please enter the date of publication (in mm/dd/yyyy format) (or 'quit' to quit):"); 
    String pubDate = sc.nextLine(); 
    currentCitation.setDateOfPublication(pubDate); 



    //while (accepted = true) { 
    System.out.println("How many authors are there? (max 3):"); 
    int numAuthors = Integer.parseInt(sc.nextLine()); 
    //currentCitation.numOfAuthors = numAuthors; 
    if (numAuthors <= 3 && numAuthors > 0) { 
     for (int a = 0; a < numAuthors; a++) { 
      System.out.println("Enter the name of author #" + (a+1) + ". (FirstName MI. LastName) (or 'quit' to quit):"); 
      String authorName = sc.nextLine(); 
      currentCitation.addAuthor(authorName); 
     } 
     accepted = false; 
     //break; 
    } else { 
     System.out.println("Error: Please enter a number between 0 and 3."); 
    } //end if 
    //} 



    System.out.println("Where was it published? (or 'quit' to quit):"); 
    String pubPlace = sc.nextLine(); 
    currentCitation.setWherePublisher(pubPlace); 

    System.out.println("What is the publisher's name? (or 'quit' to quit):"); 
    String publisher = sc.nextLine(); 
    currentCitation.setPublisher(publisher); 

    //while (accepted = true) { 
    System.out.println("How many keywords would you like to add?(max 5) (or 'quit' to quit):"); 
    int numKeywords = Integer.parseInt(sc.nextLine()); 
    if (numKeywords <= 5 && numKeywords > 0) { 
     for (int k = 0; k < numKeywords; k++) { 
      System.out.println("Enter keyword #" + (k+1) + ". (or 'quit' to quit)"); 
      String keyW = sc.nextLine(); 

      currentCitation.addKeyword(keyW); 
     } 
     accepted = false; 
     //break; 
    } else { 
     System.out.println("Error: Please enter a number between 0 and 5."); 
    } //end if 
    //} 

    System.out.println("This is your Citation:"); 
    System.out.println("Name: " + currentCitation.getName()); 
    System.out.print("Author(s): "); 

    for (int s = 0; s <= numAuthors - 1; s++) { 
     if ((numAuthors - 1) > s) { 
     System.out.print(currentCitation.authors[s] + ", "); 
    } else { 
      System.out.println(currentCitation.authors[s]); 
     } 
    } 
    System.out.println("Date of Publication: " + currentCitation.getDateOfPublication()); 
    System.out.println("Name of Publisher: " + currentCitation.getPublisher()); 
    System.out.println("Publication Place: " + currentCitation.getWherePublisher()); 

    System.out.print("Keywords: "); 
    for (int s = 0; s <= numKeywords - 1; s++) { 
     if ((numKeywords - 1) > s) { 
      System.out.print(currentCitation.keywords[s] + ", "); 
     } else { 
      System.out.println(currentCitation.keywords[s]); 
     } 

    } 
    System.out.println("Would you like to save this? (yes or no or 'quit' to quit):"); 
    String answer = sc.nextLine(); 
    if (answer.equalsIgnoreCase("no")) { 

    } else { 
     citationIndex[i] = {currentCitation.authors, currentCitation.keywords, currentCitation.ID, currentCitation.dateOfPublication, currentCitation.name, currentCitation.publisher, currentCitation.wherePublisher}; 
    } 

}// end for 

Désolé pour la méthode principale entière. Je ne suis pas très bon à Java donc je ne sais pas vraiment comment je pourrais décrire ma situation.

+0

J'essaie d'ajouter toutes les entrées dans le citationIndex []. – user2800960

+1

Pouvez-vous décrire le problème que vous rencontrez un peu plus en détail? – Dukeling

+0

Quelle est exactement votre question? Évidemment, personne ne lira votre code entier sans savoir exactement ce qu'il faut rechercher. –

Répondre

0

Utilisez un ArrayList au lieu d'un tableau, puis ajouter plusieurs éléments à via addAll:

Si les éléments que vous souhaitez ajouter à ce ne sont pas déjà dans une collection, les mettre dans une première:

mylist.addAll(Arrays.asList(1, 2, 3));

Ou vous pouvez les ajouter un à la fois:

mylist.add(1); 
mylist.add(2); 
mylist.add(3); 

DISCLAIMER: Je ne br J'ai lu votre code parce que je ne voulais pas le lire. Je réponds principalement en fonction du titre de votre question.

+0

Nous ne sommes pas autorisés à utiliser ArrayList pour cette tâche. – user2800960

+0

Ce que l'affectation fait est qu'elle prend l'entrée d'utilisateur (nom d'un livre, éditeur, date de publication, mots-clés, numéro d'identification, etc.) et après que nous obtenons toute l'entrée nous sommes censés la placer dans un tableau qui contient tous les données de citation – user2800960

+0

prennent deux tableaux dans le processus de collecte des informations, mots-clés [] et auteurs []. – user2800960

Questions connexes