2014-09-05 3 views
0

Я только начал разрабатывать приложения для Android, и мне вдруг стало сложно читать слово из текстового файла, случайно, когда нажата кнопка. Я попытался поместить все слова из текстового файла в массив и сказал ему отображать слово до следующей строки (случайно), но он, похоже, не работает. Я хочу знать, как читать и отображать слова из текстового файла один за другим и случайным образом, каждый раз, когда нажимается кнопка!Чтение из текстового файла Случайно

+0

Вы можете поделиться своим текущим кодом? – Tom

+0

Прочитайте это о том, как [прочитать текстовый файл в Android] (http://stackoverflow.com/questions/12421814/how-can-i-read-a-text-file-in-android). Я не думаю, что вы можете читать «случайным образом» текстовый файл, так как курсор, по крайней мере, должен быть установлен перед чтением чего-либо. Лучший способ добиться того, что вы хотите imho, - это прочитать весь текстовый файл, сохранить слова в коллекции, а затем рандомизировать выбор слов в этой коллекции. – m4rtin

+0

У вас было хранилище текстового файла в массив, поэтому в «word select» и/или «display word» что-то не так. Как создать программу, которая случайно отображает слово из массива слов? –

ответ

0

Вы должны попробовать разбить текст словом и поместить его в массив.

0

Создайте одну большую строку, прочитав файл до конца. Разделите большую строку в arraylist с помощью string.split и дайте методу split правильный параметр разделения ("" или ","). Возьмите случайную запись из arraylist, где максимально допустимый случайный размер 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(), надеясь, что это вам поможет.

Смежные вопросы