【发布时间】:2020-12-19 15:39:54
【问题描述】:
对于战舰游戏,我想从文本文件中读取值并将它们存储到变量中。 .txt 文件示例:
8
Carrier;3*2;3*3;3*4;3*5;3*6
Battleship;5*6;6*6;7*6;8*6
Submarine;5*2;6*2;7*2;
Destroyer;1*7;1*8
第一行表示我的棋盘大小。
下一行的结构表示船,即。 e.它的名字和它在棋盘上的坐标。例如:Carrier 有坐标:(3,2),(3,3),(3,4),(3,5)(3,6)。
与船相关的坐标数是固定的。但是,显示船只的路线可以改变。
现在,我尝试创建一个名为 Carrier 的数组 int[][],其中 int[0][0] 为 3,int[0][1] 为 2,...,并为每艘船。
稍后,总是放在第一行的棋盘尺寸应该存储在变量int size;中。
到目前为止,我有这个代码。
public void ReadFile(File f) throws FileNotFoundException {
Scanner scanner = new Scanner(f);
int lineNumber = 1;
while(scanner.hasNextLine()){
String line = scanner.nextLine();
if(lineNumber==1){ // Skipping board size for now.
lineNumber++;
continue;
}
String[] coordinates = line.split(";");
String ship = coordinates[0];
System.out.println(ship);
lineNumber++;
}
scanner.close();
}
我尝试使用分隔符、拆分、.. 但我没有设法找到解决方案.. 感谢您的帮助!
【问题讨论】:
-
问题到底出在哪里?分裂;看起来很好,你会知道你正在解析哪艘船。之后,您可以将坐标 [] 数组中的每个进一步字符串用 * 分割,以获得各个部分(列和行?)。由于我不知道您必须使用哪种数据结构来保存数据,因此我无法提供更多建议。
-
您说您“尝试创建一个数组 int[][]”,但这在您的代码中不存在。即使您的代码不起作用,它也应该显示您想在哪里做什么,如有必要,通过 cmets。
标签: java java.util.scanner delimiter readfile