ArrayList для Java - PullRequest
       4

ArrayList для Java

0 голосов
/ 07 мая 2018

Итак, это мой вопрос, на который я должен ответить:

В классе Payroll добавьте метод с заголовком private int computePay (программист р). Метод должен возвращать программиста Оценка умножается на количество часов, которые они работали. Например, если класс программиста - 2, а общее количество отработанных часов - 6, метод должен вернуть 12.

Но мой вопрос к этому форуму: как мне получить текст? файл, который содержит Firstname Secondname,paygrade(Out of 3),hours,hours,hours,hours,hours,hours

(txt. Example;

  • Шон Дайк, 3,34,54,67,78,34,12
  • Фред Флинтсоне, 1,65,78,89,89,34,23
  • Скуби Ду, 2,54,56,67,87,89,65

)

Чтобы разделить классную часть на часы, в которые они работают, я могу использовать

private int computePay(Programmer p){
   return p.grade*p.hours;
}

Я мог бы запутаться в этом или думать задом наперед, но любые указания помогли бы.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Ну, есть 2 способа хранения данных в текстовом файле:

  1. Вы можете поместить свой объект в поток объектов и просто записать его в текстовый файл.

     FileOutputStream out = new FileOutputStream("test.txt");
     ObjectOutputStream oout = new ObjectOutputStream(out);
    
     // write something in the file
     oout.writeObject(s);
    
     // close the stream
     oout.close();
    
  2. К сожалению, форматирование будет очень плохим, и вы не сможете прочитать данные самостоятельно. Также этот метод действительно противоречив. Вам понадобится ваш класс для реализации Serializable. Кроме того, любые изменения в вашем Java-коде перестанут давать возможность читать этот файл.

Так что я бы пошел на оскорбление, где вы просто сохраняете имя, а затем эти часы. Затем прочитайте его построчно:

String s = "Sean Dyke,3,34,54,67,78,34,12"
String[] entries = s.split(",");

String name = entries[0];
Integer[] hours = new Integer[entries.length -1];

for(int i = 0; i < hours; i++){
    hours[i] = Integer.parseInt(entries[i + 1]);
}

Это могло бы проанализировать одну строку. Сделайте это для каждой строки в вашем кодовом текстовом файле, и все будет в порядке.

0 голосов
/ 07 мая 2018

Я думаю, что оценка идет после имени, поэтому вы можете разбить массив и получить значения.

String[] temp = array1.split(",");

temp[0] gives name
temp[1] gives grade
temp[2...] gives hours worked 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...