-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
71 lines (49 loc) · 3.83 KB
/
Copy pathMain.java
File metadata and controls
71 lines (49 loc) · 3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
Напишите приложение, которое будет запрашивать у пользователя следующие данные , разделенные пробелом:
Фамилия Имя Отчество датарождения номертелефона пол, для удобства, все данные можете представить в виде строк.
Форматы данных:
фамилия, имя, отчество - строки
датарождения - строка формата dd.mm.yyyy
номертелефона - целое беззнаковое число без форматирования
пол - символ латиницей f или m.
Приложение должно проверить введенные данные по количеству. Если количество не совпадает с требуемым, вернуть код ошибки,
обработать его и показать пользователю сообщение, что он ввел меньше и больше данных, чем требуется.
Приложение должно попытаться распарсить полученные значения и выделить из них требуемые параметры.
Если форматы данных не совпадают, нужно бросить исключение, соответствующее типу проблемы.
Можно использовать встроенные типы java и создать свои. Исключение должно быть корректно обработано,
пользователю выведено сообщение с информацией, что именно неверно.
Если всё введено и обработано верно, должен создаться файл с названием, равным фамилии,
в него в одну строку должны записаться полученные данные, вида
<Фамилия><Имя><Отчество><датарождения><номертелефона><пол>
Однофамильцы должны записаться в один и тот же файл, в отдельные строки.
Не забудьте закрыть соединение с файлом.
При возникновении проблемы с чтением-записью в файл, исключение должно быть корректно обработано, пользователь должен увидеть стектрейс ошибки.
*/
public class Main {
public static void main(String[] args) {
String data = inputData();
String[] dataArray = data.split(" ");
Check.checkData(dataArray);
Human human = new Human(dataArray[0], dataArray[1], dataArray[2], dataArray[3], dataArray[4], dataArray[5]);
try (FileWriter fileWriter = new FileWriter(human.getSurname(), true)) {
fileWriter.write(human.toString() + "\n");
} catch (IOException e) {
}
}
/*Ввод данных */
public static String inputData() {
System.out.println("Введите через пробел следующие данные:");
System.out.println("Фамилия, Имя, Отчество(Ввод транслитом), Дата рождения(dd.mm.yyyy), Номер телефона(8ХХХХХХХХХХ), пол(f или m):");
try (Scanner input = new Scanner(System.in)) {
String inputString = input.nextLine();
return inputString;
}
}
}