У меня есть текстовый файл с примерно 200 номерами элементов и описаниями, которые отформатированы следующим образом (без патронов):Как читать текстовый файл с сочетанием int и строк, разделенных пробелом, и хранить их в массивах
- 1642 Чистая шерсть футболки
- 613 красный кружевной обувь
- 3477 Синий шлем с пером
- ...
Я пытаюсь читать d сохраняйте номера и описания элементов в соответствующих массивах, которые ограничены пробелом. Мои вопросы:
- Я хочу игнорировать пробелы в описании.
- Когда я сортирую или удаляю элементы, я хочу, чтобы описание также удалялось.
Вот что я пытался до сих пор, но получаю ошибку ArrayIndexOutOfBoundsException и я даже не уверен, что если он будет читать описание правильно:
private Scanner file;
private int item = 0;
private String desc = "";
private int[] itemArr = new int[200];
private String[] descArr = new String[200];
int n = 0;
public void openFile(){
try{
file = new Scanner(new File("inventory.txt"));
}
catch(Exception e){
System.out.println("file not found");
}
}
public void readFile(){
while(file.hasNextLine()){
if (file.hasNextInt()){
item = file.nextInt();
}
while(!file.hasNextInt() && !file.hasNextLine()){
desc = desc + file.next() + " ";
}
itemArr[n] = item;
descArr[n] = desc;
n++;
}
for (int i = 0; i < n; i++){
System.out.println(itemArr[i] + " " + descArr[n] + "\n");
}
System.out.println("Total Records (n): " + n);
}
Или есть лучший способ сделать это? Я прочитал несколько сообщений о шаблонах и регулярном выражении, но не знаю, как их использовать.
Спасибо!
Мой совет должен был бы реорганизовать формат входного файла в нечто более представительным, как [JSON] (HTTP: // эн. wikipedia.org/wiki/JSON) или [XML] (http://en.wikipedia.org/wiki/XML), если вы считаете, что использование базы данных не подходит для проблемы, которую вы пытаетесь решить. Фиксированное индексирование массивов отлично подходит для небольшого тестового примера, но оно недостаточно устойчиво, чтобы элегантно обрабатывать изменения в ваших структурах входных данных. В качестве бонуса JSON будет обрабатывать идентификацию типа и [десериализацию] (http://en.wikipedia.org/wiki/Serialization) для вас. – MrGomez
"около 200 наименований"? Если вы точно не знаете длину, я бы рекомендовал использовать Список. Кроме того, я бы рекомендовал создать объект Item для хранения данных, создав хранилище списка- . Regex - это способ вытащить отдельные фигуры, но мне это не здорово, поэтому я не могу дать вам образец. –
ggrigery
Вам нужно обрабатывать такие предметы, как «1234 Official 39ers Jersey»? – Thomas