У меня есть текстовый файл, который содержит позиции, как это:Как прочитать определенный символ для определенного символа из файла в java?
#p показывает X, Y координаты, так что первый * после #P ряду имеет (6, -1) , Я хотел бы прочитать текстовый файл в виде блоков (один блок из строки #p в следующую строку #p).
try {
File file = new File("filename.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line);
stringBuffer.append("\n");
if (line.startsWith("#P")){
Scanner s = new Scanner(line).useDelimiter(" ");
List<String> myList = new ArrayList<String>();
while (s.hasNext()) {
myList.add(s.next());
}
for (int i=0; i<myList.size(); i++){
System.out.println(myList.get(i));
}
System.out.println("xy: "+myList.get(1)+", "+myList.get(2));
}
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
Я хочу сохранить координаты в двухмерном массиве, но есть другая проблема. Как сохранить и т. Д. -1, -1?
Знаете ли вы, каково наименьшее значение координаты? Если это так, вы можете просто компенсировать все положительной константой. –
Почему два измерения? вы хотите coor [x] [y] == true, если точка существует? Это невозможно, так как у вас есть отрицательные значения. –
Это игра жизни, и моя идея состоит в том, чтобы иметь два массива с 0 и 1 значениями, один для текущего состояния, а другой - для следующего состояния. Вот почему я хотел бы сделать двухмерный массив из текстового файла. – kaprip