#java #token #polynomials
#java #токен #многочлены
Вопрос:
Привет всем, это мой первый вопрос здесь, поэтому я заранее прошу прощения, если он не в правильном формате для этого форума. Я студент факультета компьютерных наук, и я действительно начинающий программист. Для назначения мне нужно прочитать в файле многочлены, а затем отсортировать их от наивысшей степени к наименьшей. В каждой строке файла у меня есть коэффициент и показатель степени, разделенные пробелом.
Вот как выглядит мой файл .txt: «5.6 3 4 1 8.3 0», который представляет многочлен 5.6x ^ 3 4x 8.3
Я должен отсканировать файл из JFileChooser, а затем добавить токены в ArrayList типа Polynomial. Мой вопрос / проблема в том, как я могу запустить содержимое файла через цикл for и отделить первый токен (коэффициенты) от второго токена (экспоненты), а затем добавить их в ArrayList? Мне понадобятся показатели, которые должны иметь тип int, а коэффициенты должны быть двойными.
Это то, что у меня есть до сих пор:
ArrayList aList = новый ArrayList();
// scanner used to read each line
try {
scan = new Scanner(file);
if (file.isFile()) {
while (scan.hasNext()) {
for (int i = 0; i < something.size(); i ) {
//this is where I'm lost, not sure what I need to do here
}
}
}
....
Спасибо, ребята, я ценю помощь.
-Linden
Редактировать:
Хорошо, я понял это, это было намного сложнее, чем я думал. Вот что я сделал: Scanner scan = новый сканер (файл);
if (file.isFile()) {
for (int i = 0; i <=2; i ) {
term(scan);
}
}
static void term(Scanner scan) {
String s = scan.nextLine();
String [] splitter = s.split(" ");
String coefficient = splitter[0];
String exponent = splitter[1];
//populating
try {
arrayList.add(new Polynomial(coefficient, exponent));
} catch (InvalidPolynomialSyntax e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Спасибо двум парням, которые пытались мне помочь, и 24 зрителям, которые не lol
Ответ №1:
Сначала вам нужно взглянуть на класс scanner . Какие у него есть методы, которые вы должны использовать для получения необходимых вам данных?
Я не хочу давать вам ответ на вашу домашнюю работу из уважения, но в целом вам нужен способ получить каждую строку этого файла из сканера, чтобы вы могли сравнить содержимое каждой строки друг с другом.
Итак, посмотрите документацию по классу scanner и посмотрите, что в ней есть, что вы можете использовать.
Начните с простой попытки распечатать каждую строку. Как только вы это сделаете, вы можете подумать о том, как вы хотите их сравнить.
Комментарии:
1. Спасибо, сэр, я смог это выяснить!
Ответ №2:
вы можете прочитать файл как одно предложение. Сначала получите весь текст, например, в 5.6 3 4 1 8.3 0
виде строки. Затем вы можете просто использовать String [] arrayOfNumbers = yourString.split(" ");
это, чтобы разделить строку в соответствии с " "
символом, чтобы вы получали числа напрямую.
Комментарии:
1. Спасибо, брат! Я использовал это и понял это 🙂