Comment obtenir de l'ArrayList<Integer> et Scanner pour jouer à nice?

import java.util.*;

public class CyclicShiftApp{

   public static void main(String[] args){
      Scanner scan = new Scanner(System.in);
      ArrayList<Integer> list = new ArrayList<Integer>();
      while(scan.hasNextInt()){
         list.add(scan.nextInt());
      }
      Integer[] nums = new  Integer[list.size()];
      nums = list.toArray(nums);
      for(int i = 0;i < nums.length; i++){
      System.out.println(nums[i]);
      }   
}

Grâce à de mauvaises-mans-débogage, j'ai trouvé que le while(scan.hasNextInt()) n'est pas d'ajouter quoi que ce soit. Ce qui pourrait mal se passer? Est mon google-fu de faiblesse ou de manque de savoir-faire, de me laisser tomber? Je suis assez nouveau à la programmation, et aussi peu familiers avec les Listes alors pensé que ce serait une belle première étape, mais quelque chose n'est pas une addition. Il compile également les beaux-donc ce n'est pas la syntaxe(ou plus). Peut-être un casting problème?

Vous n'avez pas dit quoi que ce soit nous sur quelle entrée vous l'ai donné. Il fonctionne pour moi. Si je tape dans les 10 (retour) 20 (retour) 30 (retour) Ctrl-D (retour), il montre les trois numéros.
Oh désolé. Juste une liste de nombres avec des espaces. par exemple. 14 17 18 33 54 1 4 6
Encore une fois, si j'ai taper dans l', puis appuyez sur retour, puis Ctrl-D, revenir, il imprime tous les numéros. Comment êtes-vous appelé à disparaître? (Félicitations pour montrer une courte mais complète du programme, et essayer d'apprendre à partir de la base, plutôt que de courses directement à une interface graphique+base de données etc, par la manière. Je souhaite que tout le monde a eu cette approche.)
14 17 18 33 54 1 4 6 il va les traiter comme String d'entrée et de scan.hasNextInt() retournera false.
Vous pouvez faire la fin de la boucle en fournissant des non-entier.

OriginalL'auteur Samwise Gibbens | 2013-04-19