2017-10-13 75 views
-1
public class guessMovies { 
private Random randomGenerator; 
public static void main(String[] args) throws IOException { 

    String MovieList = null; 

    try (BufferedReader br = new BufferedReader(new FileReader("Movielist.txt"))) { 

     while ((MovieList = br.readLine()) != null) { 
      ArrayList<String> MovieNames = new ArrayList<String>(); 
      MovieNames.addAll(Arrays.asList(MovieList)); 
      //System.out.println(MovieList); 
      System.out.println(MovieNames); 

      Random r = new Random(); 
      System.out.print(MovieNames.get(r.nextInt(MovieNames.size))); 
     } 
    } 

    catch(FileNotFoundException exception) { 
     System.out.println("I cannot find your file"); 
    } 
    //pick random movie 
} 

有人可以指导我如何选择在Movielist文件随机电影标题,我可以打印出整个列表,但我不知道如何选择其中一个随机。检索随机元素的ArrayList中

+0

是System.out.print'(MovieNames.get(r.nextInt(MovieNames.size)))'...这是已经非常接近你所需要的。问题是什么? –

+0

放行:System.out.print(MovieNames.get(r.nextInt(MovieNames.size)));读取循环之外(并将大括号()添加到size())。 –

回答

0

您应该实例化一个ArrayList,读取所有电影标题并将它们添加到列表中,然后使用Random.nextInt()选择并打印它。

0

尝试是这样的:

public class guessMovies { 

    public static void main(String[] args) throws IOException { 

     String MovieList; 
     ArrayList<String> MovieNames = new ArrayList<>(); 

     try (BufferedReader br = new BufferedReader(new FileReader("Movielist.txt"))) { 

      while ((MovieList = br.readLine()) != null) { 
       MovieNames.add(MovieList); 
      } 

      for(String movieName: MovieNames){ 
       System.out.println(movieName); 
      } 

      Random r = new Random(); 

System.out.println(MovieNames.get(r.nextInt(MovieNames.size()))); 
     } 

     catch(FileNotFoundException exception) { 
      System.out.println("I cannot find your file"); 
     } 
     //pick random movie 
    } 
} 
+0

它的工作,但现在我不能打印出整个MovieList文件,它给了我“null” –

+0

@Troy Nguyen看到我上面编辑的版本,打印MovieList。或者,如果您使用Java 8,则可以用MovieNames.forEach(System.out :: println)替换每个循环; – smitty1

+0

当我创建随机r = new Random();它是一个字符串var?所以我想用replaceAll方法将随机名替换成“__”“,但是我不能使用var r,java说它找不到符号。 –