在 Android 上创建一个将使用 RMI 和 Tomcat 的小型战舰游戏。
我需要从文本文件“boards.txt”加载数据,并可能将其存储在 HashMap 中以便查询。
我无法附加该文件,但下面是记事本中 .txt 文件的屏幕截图。它显示了 10,000 个战舰游戏板的板布局(我认为无论如何都是这个数字),它们是 10x10 网格。
因此,文件的每 100 个字符将是不同船只的位置和 10 x 10 网格的空格,每个网格由换行符分隔。
我正在努力的是实际的解析。我认为将数据保存到 HashMap 将使搜索随机板布局变得更加容易。下面是我目前用来读取数据的代码。
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new FileReader("C:\\Path\\boards.txt"));
HashMap<String, String> map = new HashMap<String, String>();
while (scanner.hasNextLine()) {
String columns = scanner.nextLine();
map.put(columns, columns);
}
System.out.println(map);
}
现在我拥有它的主要原因是为了摆脱错误。以前我的代码是这样的:
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new FileReader("C:\\Path\\boards.txt"));
HashMap<String, String> map = new HashMap<String, String>();
while (scanner.hasNextLine()) {
String[] columns = scanner.nextLine().split(" ");
map.put(columns[0], columns[1]);
}
System.out.println(map);
}
但是,我遇到了一个越界异常。由于事实上没有空格可以分割。
好的,所以我的主要问题是,如何将整个 .txt 文件保存到 HashMap 并一次只显示一行 100 个字符。
其次(较低优先级) - 我想随机选择一行,这样我就可以创建一个 1-10000 之间的随机数来显示一行。我曾想过使用 String、Integer HashMap 并以某种方式为每一行设置一个索引值,但我不知道该怎么做。
**编辑对不起,我忘了添加屏幕截图。这里是:
感谢您的回答,我现在将阅读它们