gpt4 book ai didi

java - 读入数组并显示数组

转载 作者:行者123 更新时间:2023-12-02 10:47:21 25 4
gpt4 key购买 nike

我是java新手,我在这方面遇到了麻烦。我需要制作2个不同的程序。一个用于制作txt文件,另一个用于执行。第一个程序制作网格。第二个在方法中读取 txt,然后我应该在 main 中调用它。我似乎无法弄清楚。

初始数组(txt.file):

import java.util.ArrayList;
import java.util.Scanner;
import java.util.Random;
import java.util.Collections;

public class Grid {
public static void main(String[] args) {
ArrayList<Integer> indNum = new ArrayList<Integer>();
ArrayList<Integer> elemNum = (ArrayList<Integer>) indNum.clone();
ranNum(indNum);
ranNum(elemNum);

String grid[][] = mGrid();
replaceGrid(grid, indNum.get(0), elemNum.get(0));
replaceGrid(grid, indNum.get(1), elemNum.get(1));
replaceGrid(grid, indNum.get(2), elemNum.get(2));
disGrid(grid);
}

public static String[][] mGrid() {
String[][] Array = { { " *", " *", " *", " *", " *" },
{ " *", " *", " *", " *", " *" },
{ " *", " *", " *", " *", " *" },
{ " *", " *", " *", " *", " *" },
{ " *", " *", " *", " *", " *" }
};
return Array;
}

public static void disGrid(String[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
}

public static ArrayList<Integer> ranNum(ArrayList<Integer> ran) {
for (int i = 0; i < 5; i++) {
ran.add((i));
}
Collections.shuffle(ran);
ran.remove(4);
ran.remove(3);
return ran;
}

public static String[][] replaceGrid(String[][] array, int num1, int num2) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
array[num1][num2] = " O";
}
}
return array;
}
}

输出:

 O * * * *
* * * * *
* * * * *
* * O * *
* * * O *

三个 O 随机放置在网格中第二部分 通过执行数组读入并显示:

package Execute;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.Random;
import java.util.Collections;
import java.io.*;

public class part2 {
public static void main(String[] args) {
ArrayList<String> makeGrid= new ArrayList<String>();
readFile(makeGrid);
System.out.print(makeGrid);
}

public static void readFile(ArrayList<String> exec) {
try {
Scanner reader = new Scanner(new File("Grid.txt"));
do {
exec.add(reader.nextLine());
}while (reader.hasNext());
} catch (FileNotFoundException fnf) {
System.out.println("File was not found");
}
}
}

当我运行它时,它不会存储旧网格并显示它。相反,它只是打印出我在一行中编写的整个代码。我如何执行代码并将其存储在数组列表中以便我可以操作它?

最佳答案

首先,您需要 while (reader.hasNextLine())

如果您希望数组列表显示为多行,您可以手动添加换行符

exec.add(reader.nextLine() + "\n");

或者您实际上可以打印每一行,而不仅仅是数组列表

readFile(makeGrid);
for (String line : makeGrid) {
System.out.println(line);
}

顺便说一句,不建议将可变集合作为参数传递到方法中。你应该return来自 readFile() 的新数组列表

关于java - 读入数组并显示数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52453756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com