Java 如何在android应用程序中从txt文件中获取部分行
我有一个.txt文件,我设法创建了一个应用程序,它可以读取这个txt文件,并将其文本转换成字符串Java 如何在android应用程序中从txt文件中获取部分行,java,split,bufferedreader,readline,Java,Split,Bufferedreader,Readline,我有一个.txt文件,我设法创建了一个应用程序,它可以读取这个txt文件,并将其文本转换成字符串 File dir = Environment.getExternalStorageDirectory(); // i have kept text.txt in the sd-card if(file.exists()) // check if file exist { //Read text from file
File dir = Environment.getExternalStorageDirectory();
// i have kept text.txt in the sd-card
if(file.exists()) // check if file exist
{
//Read text from file
StringBuilder textt = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
if(line.startsWith("[A]")){
textt.append(line);
textt.append('n');
}
}
catch (IOException e) {
}
//Set the text
text.setText(textt);
}
else
{
text.setText("Sorry file doesn't exist!!");
}
我的txt文件是
What is the biggest county in the world.......
[A]China. [B]Usa. [C]Russia. [D]France
What is the tallest river in the world.........
[A]Nile. [B]Mesesbie. [C]khan. [D]Red river
.........
如您所见,我的文本文件包含一些问题和每个问题的四个答案,我想让我的应用程序在arrylist中获取问题,在arrylist中获取[A]答案,在数组列表中获取[B]答案(与C和D相同)
public ArrayList Questions=new ArrayList();
public ArrayList answerA=新的ArrayList();
public ArrayList answerB=新的ArrayList();
public ArrayList answerC=new ArrayList();
public ArrayList answerD=new ArrayList();
但我不知道怎么做,我读了关于(拆分)和(子字符串)的书,试图得到[A]答案,但我做不到,因为我的应用程序给我的每一行都以[A]开头,我希望[A]的答案没有[B]或[C]或其他答案
因此,如果有人能为我提供一个好的解决方案,我会很感激的。不要将读取行组合成一个字符串,而是分别处理每一行 在这种情况下,可能会出现多种情况: -单行或多行问题 如果一行不包含[a]和[B]以及[C]和[D]中的任何一行,则该行是一个问题行,之后的所有行都符合此标准,直到下一次出现[a]或[B]或[C]或[D]为止,都是问题行,应放在问题列表中 -答案的每个选项都在一行中 [A] 选项1[B]选项2[C]选项3[D]选项4 如果一行包含所有这些[a]和[B]以及[C]和[D], 确定[A]和[B]以及[C]和[D]在读线字符串中的位置,并将部分放在相应数组中这些位置之间 -每个选项的答案在单独的行上 [A] 选择1 [B] 选择2 [C] 选择3 [D] 选择4 当[A]或[B]或[C]或[D]中只有一个存在,而其余部分缺失时,此条件可能为真。在这种情况下,将此行添加到其相应的ArrayList()中 -一些选项在一行中,其他选项分开 [A] 选项1[B]选项2[C]选项3 [D] 选择4 我希望你知道需要做什么
public ArrayList<String> Questions=new ArrayList<>();
public ArrayList<String> answerA=new ArrayList<>();
public ArrayList<String> answerB=new ArrayList<>();
public ArrayList<String> answerC=new ArrayList<>();
public ArrayList<String> answerD=new ArrayList<>();