Я бы лично сделал IndexOf для первого пробела, затем следовал бы подстрока от 0 до результата IndexOf и ParseInt, чтобы получить номер элемента.
Тогда я бы сделал подстроку IndexOf до конца строки и сделал бы Обрезку для результата для хорошей меры.
В вашем примере у вас также нет защиты вашего массива, если в вашем файле более 200 строк, вам не хватит места в вашем массиве. Вы должны использовать коллекцию как ArrayList
Это будет выглядеть примерно так:
Сначала мы изменим объявление вашего массива для ArrayList
private ArrayList<Integer> itemArr = new ArrayList<Integer>();
private ArrayList<String> descArr = new ArrayList<String>();
Во-вторых, мы изменим ваш алгоритм, чтобы использовать SubStrings
и IndexOf
и использовать ArrayList
public void readFile(){
while(file.hasNextLine()){
String line = file.getNextLine();
int indexOfSpace = line.IndexOf(" ");
int item = Integer.parseInt(line.substring(0,indexOfSpace));
String description = line.substring(indexOfSpace).trim();
itemArr.add(item);
descArr.add(description);
}
}
Если вы хотите пойти еще дальше, вы можете создать Class
для представления ваших предметов и использовать только один ArrayList
вместо 2, но я думаю, что я уже рассмотрел ваш вопрос!