У меня есть файл CSV с образцами данных в этой форме:
220 30 255 0 0 Javascript
200 20 0 255 128 Thinking in java
, где первый столбец - высота, вторая толщина, следующие три - значения rgb для цвета, а последний - заголовок.Все должны рассматриваться как отдельные переменные.Я уже написал свое собственное решение для этого, но мне интересно, нет ли лучшего / более простого / более короткого пути сделать это.Извлеченные данные затем будут использованы для создания объекта Книги, разбрасывания каждой Книги в массив книг и распечатывания ее с размахом.Вот код:
private static Book[] addBook(Book b, Book[] bookTab){
Book[] tmp = bookTab;
bookTab = new Book[tmp.length+1];
for(int i = 0; i < tmp.length; i++){
bookTab[i] = tmp[i];
}
bookTab[tmp.length] = b;
return bookTab;
}
public static void main(String[] args) {
Book[] books = new Book[0];
try {
BufferedReader file = new BufferedReader(new FileReader("K:\\books.txt"));
String s;
while ((s = file.readLine()) != null) {
int hei, thick, R, G, B;
String tit;
hei = Integer.parseInt(s.substring(0, 3).replaceAll(" ", ""));
thick = Integer.parseInt(s.substring(4, 6).replaceAll(" ", ""));
R = Integer.parseInt(s.substring(10, 13).replaceAll(" ", ""));
G = Integer.parseInt(s.substring(14, 17).replaceAll(" ", ""));
B = Integer.parseInt(s.substring(18, 21).replaceAll(" ", ""));
tit = s.substring(26);
System.out.println(tyt+wys+grb+R+G+B);
books = addBook(new Book(wys, grb, R, G, B, tyt),books);
}
file.close();
} catch (IOException e) {
//do nothing
}
}