2014-09-05 124 views
0

我剛開始開發android應用程序,突然發現很難從文本文件中隨意讀取一個單詞,當單擊按鈕時。我試圖將文本文件中的所有單詞放入數組中並告訴它直到下一行(隨機)顯示該單詞,但它似乎不起作用。我想知道如何從一個文本文件中逐一閱讀和顯示單詞,並且每次點擊一個按鈕時隨機!從文本文件中隨機讀取

+0

你能分享你當前的代碼嗎? – Tom 2014-09-05 10:09:36

+0

閱讀關於如何[在Android中閱讀文本文件](http://stackoverflow.com/questions/12421814/how-can-i-read-a-text-file-in-android)。我不認爲你可以隨意閱讀一個文本文件,因爲在閱讀任何內容之前光標至少需要被設置。最好的方法來實現你想要的imho將是讀取整個文本文件,將詞存儲在一個集合中,然後隨機化該集合中的單詞選擇。 – m4rtin 2014-09-05 10:10:28

+0

您將文本文件的單詞存儲到數組中,所以在「單詞選擇」和/或「顯示單詞」中出現錯誤。如何開發一個從單詞陣列中隨機顯示單詞的程序? – 2014-09-05 10:23:34

回答

0

你應該嘗試將單詞逐字分解並放入一個數組中。

0

通過讀取文件到最後創建一個大字符串。 使用string.split將大字符串拆分爲數組列表,併爲拆分方法提供正確的拆分參數(「」或「,」)。 從陣列列表中隨機輸入,其中允許的最大隨機數是arralist的大小。

0

用於顯示單詞數組中單詞的示例代碼。

大多數行的功能都寫在註釋中。

string words[]; // array for words. 
    /* code for reading text from text file and place words in text into words[] */ 
int sizeOfArray = numberOfWordsInArray; /* the value is set in the code of words placing into array */ 

Random rnd = new Random(); // random number generator 

int index = rnd.nextInt(sizeOfArray); // nextInt returns random integer number between 0 and (sizeOfArray-1). 

printf("%s\n",words[index]); // select a word by random number and display it. 
0

我猜你每行只有一個單詞。使用下面的代碼讀取文件並將其保存到列表中。

ArrayList<String> list = new ArrayList<String>(); 
try { 
    InputStream instream = openFileInput("yourfile.txt"); 
    if (instream) { 
     BufferedReader buffreader = new BufferedReader(new InputStreamReader(instream)); 
     String line; 
     while ((line = buffreader.readLine())) { 
     list.add(line); 
    } 
} 
instream.close(); 
} catch (java.io.FileNotFoundException e) { 
} 

將上面的代碼放在onCreate方法中。現在使用import java.util.Random從列表中隨機選擇您的項目。將下面的代碼放在OnClickListener中。

public Item anyItem() 
    { private Random randomGenerator = new Random(); 
     int index = randomGenerator.nextInt(list.size()); 
     Item item = list.get(index); 
     System.out.println("Your Selected item is " + item"); 
     return item; 
    } 

現在你可以做任何事情從anyItem()方法上面返回的項目,希望它可以幫助你。