Java 如何在android应用程序中从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

我有一个.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
            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<>();