2016-03-13 51 views
3

我無法從CSV文件中抓取隨機元素。這裏是我的代碼從CSV文件中抓取隨機元素

public String[] generateNames(String Name) 

BufferedReader br = new BufferedReader(newFileReader("c:\\users\\listofcities.csv")); 


Random generator = new Random(); 

int row = generator.nextInt(1); 

String[] arrayValues = new String[row]; 

     for (int i=1; i<arrayValues.length; i++) { 
      while ((line = br.readLine()) != null) { 
       StringTokenizer st = new StringTokenizer(line, "\n"); 
       while (st.hasMoreTokens()) { 
        //get next token and store it in the array 
        arrayValues[row] = st.nextToken(); 

       } 

      } 
      row++; 
     } 
     //close the file 
     br.close(); 

     return arrayValues; 
    } 

每當我有行值小於1的任何其他我得到一個arrayoutofbounds例外。任何人都可以把我放在正確的軌道上,因爲我的代碼是性交。

回答

0

您正在使用public int nextInt(int bound)Random類,該類返回0(含)和指定的bound值(不包括)之間的值。

String[] arrayValues = new String[row];此行產生大小爲0或1的數組。因此,當您嘗試訪問arrayValues[i]其中i大於數組大小時,它會引發異常。

0

您的代碼存在的問題是您生成的值爲0或1,因此請將隨機數生成語句更改爲此。

int randomNum = minimum + rand.nextInt((maximum - minimum) + 1); 

最小=在範圍初始值, 最大=在範圍

最終值