Java новичок здесь, у меня проблема в том, что я уже несколько часов бьюсь головой об стену.
По сути, мне нужно прочитать текстовый файл, содержащий типы данных String, Integer и Double,(см. файл ниже)
Текст отформатирован в две строки.Первая строка - это только название продукта, а вторая строка - целое число, представляющее номер завода, а затем 4 десятичных знака, представляющие продажи на одном из четырех заводов в миллионах долларов.
CrossTrainMax
1 15.1 12.8 3.14 2.3
AirGlider
3 12.2 4.6 6.5 8.3
AquaWalker
2 3.82 1.75 7.6 6.38
SuperHike
1 9 11.2 7.5 8.4
Перваязначение - это название продукта.Однозначное целое число - это заводской номер, на котором оно производится.Десятичное число - это продажи этого продукта в миллионах долларов, разделенные пробелами.
Я планирую прочитать имя продукта в виде строки, а затем использовать целочисленное значение в качестве оператора SWITCH.(% Прибыли на каждом заводе различен, поэтому я подумал, что лучше всего решить этот способ расчета общей прибыли в отчете о переходе.)
После того, как я получу общий объем продаж по продукту, яЗатем ему нужно будет показать пользователю, какой продукт имеет самые высокие продажи.
Итак, мои вопросы:
a) Как я могу читать в нескольких типах данных, если я пытаюсь сделать это в строкепострочно используя NextLine?Я знаю, как читать все целые числа, все двойные числа или все строки, но как лучше всего это сделать, если они все разные?
Моя попытка до сих пор приводила к ошибочным несовпадениям.
б) Мне лучше читать все значения в виде строк и использовать регулярные выражения для разбора их на переменные?
в) Если я собираюсь сортировать Продажи на основемаксимальная прибыль, нужно ли хранить общий объем продаж каждого продукта в отдельной переменной?Можно ли это сделать, если я читаю на входе файла с помощью циклов?(Мы еще не покрыли массивы)
Вот начало кода, с которым я играл.Я все еще застрял в проблеме чтения отдельных типов данных. Любая обратная связь / критика приветствуются.
import java.util.Scanner; // Needed for scanner class
import java.io.*; // Needed for the File and IOException
public class SalesProcessor
{
public static void main(String[] args) throws IOException
{
int x;
double sales = 0;
double total = 0;
double profit = 0;
// Create scanner object for keyboard input.
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter the filename: ");
String filename = keyboard.nextLine();
// Open the file
File file = new File(filename);
Scanner inputFile = new Scanner(file);
String line = inputFile.nextLine( );
for (x = 1; x <= 5; x++)
{
while (line != "END")
{
int plant = inputFile.nextInt();
switch (plant)
{
case 1:
while (inputFile.hasNext())
{
sales = inputFile.nextDouble();
total = total + sales;
}
profit = sales * .06;
System.out.println(total);
System.out.println(profit);
System.out.println(profit);
break;
}
}
}
}
}