Это зависит от того, как вы думаете или знаете, математические выражения будут записаны в текстовом файле. Если это файл только с выражениями, разделенными каким-либо символом, то вы можете использовать что-то вроде этого:
ArrayList<String> expressions = new ArrayList<String>();
try (Scanner s = new Scanner(new File("test.txt"))) {
while (s.hasNextLine()) {
String fullLine = s.nextLine();
String[] expArray = fullLine.split(",");
for (String exp : expArray) {
expressions.add(exp);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Вам не нужно упаковывать его в массив, если вы не хотите. Вы можете рассчитать и распечатать его прямо в файл. Но это займет каждую полную строку файла и разделит ее на кусочки строки между запятыми.
Я просто в этом случае принимаю запятую. Если выражения разделены пробелом, вы можете пропустить .split()
и просто использовать s.next()
вместо s.nextLine()
.
Вы также можете использовать функцию сканера useDelimiter()
. Установите разделитель на то, что разделяет выражения, и затем, когда вы используете s.next()
, он выдаст вам токены между разделителями.
Вам также придется сделать немного больше, чтобы фактически проанализировать выражение какв настоящее время он хранится в виде строки. Это не должно быть слишком сложно.