我有一个.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中得到这些问题,而[A]在arrylist中得到这些答案,而 [B]数组列表中的答案(与C和D相同)。
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<>();
但是我不知道该怎么做,我读了(split)和(substring),并试图得到[A]答案,但是我做不到,因为我的应用程序给了我每一行以[A]开头,我希望[A]的答案不包含[B]或[C]或其他答案,
所以如果有人对我有一个好的解决方案,我将很感激。
不要将readLines组合成一个字符串,而是分别处理每一行。
在这种情况下可能有很多情况:
单行或多行问题
[如果某行不包含这些[A]和[B]以及[C]和[D]中的任何一个,则它是一个问题行以及此条件之后的所有与该条件匹配的行,直到下次出现[A]或[B]或[C]或[D]是问题,应放在问题ArrayList
-单行回答的每个选项
[[A]选项1 [B]选项2 [C]选项3 [D]选项4
如果一行包含所有这些[A]和[B]以及[C]和[D],确定readLine字符串中[A]和[B]以及[C]和[D]的位置,并将部分放置在相应数组中的这些位置之间。
-每行答案的每个选项
[A]选项1
[B] option2
[C] option3
[D] option4
如果仅存在[A]或[B]或[C]或[D]中的一个,而其余部分都不存在,则此条件可以成立。在这种情况下,将此行添加到其对应的ArrayList()
一行中的某些选项,其他行中的其他选项
[[A]选项1 [B]选项2 [C]选项3
[D] option4
我希望你对需要做的事情有想法!