Я новичок в Java, и у меня возникли проблемы с этим. Мне нужно сделать 2 разные программы.один, чтобы сделать текстовый файл и другой, чтобы выполнить.Первая программа делает сетку.2-й читает txt в методе, а затем я должен вызвать его в основном.Я не могу понять это.
Исходный массив (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 случайно размещены в сетке. 2-я часть Считывание и отображение путем выполнениямассив:
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");
}
}
}
Когда я запускаю это, он не сохраняет старую сетку и не отображает ее.Вместо этого он просто печатает весь код, который я написал в одну строку.Как мне выполнить код и сохранить его в arraylist, чтобы я мог манипулировать им?