2013-08-09 4 views
0

У меня есть этот кусок кода;Как загрузить случайную строку из текстового файла в android?

Scanner s = new Scanner(getResources().openRawResource(R.raw.game)); 

try { 
    while (s.hasNextLine()) { 

     System.out.println(s.nextLine()); 

    } 
} finally { 
    s.close(); 
} 

Как сделать, чтобы загрузить случайную строку из этой части кода?

Спасибо.

+0

Если файл небольшой, чтение в массив строк является способом идти. Если он большой, вам нужен другой подход. Насколько велик файл? – Gene

ответ

1

Вы можете загрузить строки в другую структуру данных, такие как ArrayList, а затем использовать Random для генерации случайного числа индексов.

Вот код, чтобы поместить его в ArrayList:

Scanner s = new Scanner(getResources().openRawResource(R.raw.game)); 
ArrayList<String> list = new ArrayList<String>(); 

try { 
    while (s.hasNextLine()) { 
     list.add(s.nextLine());  
    } 
} finally { 
    s.close(); 
} 

Этот код возвращает случайную строку:

public static String randomLine(ArrayList list) { 
    return list.get(new Random().nextInt(list.size())); 
} 
+0

спасибо! @ user2453771 – iamnards

1

Сначала загрузите все файлы из файла в массив String, а затем произвольно выберите один из них из массива String.

0

позволяет supose, что вы сделали сбор в массиве строк lines:

int randomLine = (int)(Math.random()*lines.length); 

там вы получили вашу случайную строку.

Edit: Ну хорошо, вы можете использовать только String[]

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