我正在制作一个简单的基于文本的纸牌游戏,用于解析文件的乐趣/练习。我有一个纯文本文件,其中包含该卡的所有规格。我的卡片用" ##########"分开。它们是多线的。现在我只想随时随地拿出任何一张卡的全部内容。例如,玩家选择角色1,所以我只提取卡1?怎么样?
EXAMPLE:
##########
CARD 1
Character Name:
Something Else:
##########
CARD 2
Character Name:
Something Else:
##########
Character Name:
Something Else:
##########
我如何实际拆分卡片,因此我只能问卡片的用户。 我不想阅读这些文字并按照我的方式打印。这是相当麻烦和复杂的。 我的新尝试: ArrayList listForCard1 = new ArrayList(); 整数selected_card = 1;
try {
String line;
FileReader fR = new FileReader("MyText.txt");
BufferedReader br = new BufferedReader(fR);
int x = 0;
Integer card = 1;
while ((line = br.readLine()) != null) {
ALines[x] = line;
x++;
if (line.contains("##########")) {
if ( card == selected_card) {
listForCard1.add(br.readLine());
// System.out.println(br.readLine());
break;
} else {
card++;
}
}
}
System.out.println("Done");
System.out.println(ALines[0]);
System.out.println(ALines[1]);
System.out.println(ALines[2]);
System.out.println(ALines[3]);
System.out.println(ALines[4]);
System.out.println(ALines[5]);
System.out.println(ALines[6]);
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
试试这个
ArrayList<String> listForCard1 = new ArrayList<String>();
Integer selected_card = 1;
BufferedReader br = null;
try {
String line;
br = new BufferedReader(new FileReader("MyText.txt"));
Integer card = 1;
while ((line = br.readLine()) != null) {
if (line.contains("##########")) {
if ( card == selected_card) {
listForCard1.add(br.readLine());
listForCard1.add(br.readLine());
listForCard1.add(br.readLine());
break;
} else {
card++;
}
}
}
System.out.println("Done");
for (String s : listForCard1) {
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
通过设置selected_card来选择卡片。我们会计算出当我们看到足够多的#####时我们会读出该卡并停止读取该文件..然后从arraylist中打印出来