Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Работа с массивом java. Помогите разобратся гуманитарию.

Ирина Филимонова Ученик (96), закрыт 3 года назад
Знатоки, Обьясните пару моментов. В целом задача выглядит так, нужно написать цикл который бы проверял такое условие если пользователь выполнил действие 1 и действие 2 и действие 3 или же выполнил действие 2 и 3 и имеет в наличии вещь1 то присвоить ему статус "одобрено "если нет статус" неодобрено ". С самим циклом нет проблем. Я хочу составить текстовый файл который бы содержал в себе строки типа фио пользователя действие 1/2/3 вещь1 и статус. Считать его через Scanner в массив и уже в массиве через цикл с условием записать значения в столбец статус. Проблема в том что я гуманитарий и не понимаю механику процесса чтения и записи из файла в массив.... как добится того чтобы в ячейки массива попадали именно нужные данные из файла а не пробелы с табуляцией ведь столбец пользователь содержит фио и его длинна для каждого разная будет? И как записать в массив столбец Статус если он изначально пустой должен быть (т. е его даже нет изначально в файле как бы) делать два массива и потом их обьединять?
Лучший ответ
Кирилл Мастер (1363) 3 года назад
зачем тебе это учить если ты гуманитарий
Ирина ФилимоноваУченик (96) 3 года назад
А кто сказал что я что-то учу? у меня возник вопрос, на который я захотела получить обьяснения потому что после чтения пары статей про массивы я так и не поняла то что меня интересовало. Так же как у вас возник вопрос "зачем я живу"
Кирилл Мастер (1363) а ну понятно я ценю что тебе нравится что то изучать
Остальные ответы
Станислав Ержанов Мыслитель (5339) 3 года назад
Такой гуманитарий нахер нужен
user49912 Оракул (51202) 3 года назад
определись, в каком формате ты будешь хранить файл
я бы для этой задачи выбрал tsv или csv как наиболее примитивные, чтобы не путаться, где у тебя пробелы, где у тебя пустые поля и т. д.

то есть, например, если мы говорим про четыре поля (фио, действие, вещь, статус) и формат csv, в файле будут строчки типа
иванов иван иваныч, 1,+,
иванов пал иваныч, 2,-,одобрено
и потом можно сканером читать по целой строчке, как-то сплитить по запятым и получать ровно 4 разделёных запятой поля, если файл нормально сформирован
может, в жаве даже есть какие-то встроенные средства для парсинга csv/tsv
Ирина ФилимоноваУченик (96) 3 года назад
Вообще хотелось бы понять на примере txt файла. Допустим строка имеет вид "Иванов Иван Иванович да нет да 4 одобрено" где да нет да это три действия. 4 это вещь а одобренно собственно статус. как собственно сделать чтобы в ячейку [0] попало только Иванов Иван Иванович а в ячейку [1] да. И так далее, насколько я понимаю можно читать посимвольно и записывать опр число символов в ячейку (что мало применимо в этом случае так как фио разной длинны выходят), или как вы написали делать какойнибудь символ метку типо запятой или слеша например, до которой будет идти запись, но это немного некрасиво будет выглядеть в самом файле. Возможно ли например сделать cтуктуру строки файла фио два пробела действие два пробела и тд... а потом считывать строку до двух пробелов и писать в ячейку массива?
Ирина Филимонова Ученик (96) Ирина Филимонова, ну т. е будет чтото вроде.... читаем строку постмвольно, если след два символа это пробел то записываем все предыдущие символы в ячейку. Если нет читаем строку дальше.... хм.. но тогда в конце строки все равно должен быть какойто символ ограничитель указывающий на конец строки, как я понимаю
Похожие вопросы