import java.util.ArrayList;
import java.util.Scanner;
public class DataInput {
// Ðвод кол-ва Ñеловек
public int numberOfPeople (Scanner scanner) {
int numberOfPersons;
final String STR_QUERY = "Ðа ÑколÑко Ñеловек необÑ
одимо ÑазделиÑÑ ÑÑÑÑ:";
final String STR_NOTE = "\nÐведиÑе Ñелое ÑиÑло болÑÑе 1.";
do {
System.out.println(STR_QUERY);
while (!scanner.hasNextInt()) {
System.out.println(new StringBuilder().append("ÐÑо не Ñелое ÑиÑло!").append(STR_NOTE).append("\n").append(STR_QUERY));
scanner.next();
}
numberOfPersons = scanner.nextInt();
if (numberOfPersons < 0) {
System.out.println(new StringBuilder().append("ÐÑо оÑÑиÑаÑелÑное ÑиÑло!").append(STR_NOTE));
} else if (numberOfPersons == 0) {
System.out.println(new StringBuilder().append("Ðа 0 делиÑÑ Ð½ÐµÐ»ÑзÑ!").append(STR_NOTE));
} else if (numberOfPersons == 1) {
System.out.println(new StringBuilder().append("ÐÐµÑ ÑмÑÑла делиÑÑ. ÐеÑÑ ÑÑÐµÑ Ð¾Ð¿Ð»Ð°ÑиваÑÑ Ðам!").append(STR_NOTE));
}
} while (numberOfPersons <= 1);
return numberOfPersons;
}
// Ðвод ÑоваÑа
public ArrayList productEntry (Scanner scanner) {
final String STR_END_INPUT = "ÐавеÑÑиÑÑ"; // Ðодовое Ñлово Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð°
ArrayList listOfProducts = new ArrayList<>(); // ÐаÑÑив Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑодеÑжимого ÑÑÑок ÑÑеÑа
do {
String name;
float price;
boolean empty;
do {
// Ðвод Ð½Ð°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ ÑоваÑа
System.out.println("ÐведиÑе наименование ÑоваÑа:");
name = scanner.next();
// ÐÑовеÑка, ÑÑо ÑÑÑока не пÑÑÑаÑ. ÐажеÑÑÑ Ð¾Ð½Ð° не ÑÑебÑеÑÑÑ (пÑи пÑÑÑой ÑÑÑоке scanner бÑÐ´ÐµÑ Ð¿Ð¾Ð²ÑоÑÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод), но на вÑÑкий ÑлÑÑай
empty = name.isEmpty();
if (empty) {
System.out.println("У ÑоваÑа должно бÑÑÑ Ð½Ð°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ðµ, пÑÑÑÑе ÑÑÑоки не допÑÑкаÑÑÑÑ!");
}
} while (empty);
// Ðвод и пÑовеÑка ÑенÑ
price = enteringAndCheckingPrices(scanner);
Product lb = new Product(name, price); // Создание обÑекÑа Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
ÑÑÑоки ÑÑеÑа
listOfProducts.add(lb); // и добавление его в маÑÑив
System.out.println("Ð¢Ð¾Ð²Ð°Ñ ÑÑпеÑно добавлен.");
System.out.println("ХоÑиÑе добавиÑÑ ÐµÑе один ÑоваÑ?\nÐÐ»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑа Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑов введиÑе \"ÐавеÑÑиÑÑ\":");
} while (!scanner.next().equalsIgnoreCase(STR_END_INPUT));
return listOfProducts;
}
// Ðвод и пÑовеÑка ÑенÑ
private float enteringAndCheckingPrices (Scanner scanner) {
final int DIGITS_AFTER_DOT = 2; // ÐакÑималÑное кол-во ÑиÑÑ Ð¿Ð¾Ñле деÑÑÑиÑной ÑоÑки
float price;
String s = "\nÐжидаеÑÑÑ ÑиÑло болÑÑе 0 в ÑоÑмаÑе \"0.00\".";
String s1 = "ÐведиÑе ÑÑоимоÑÑÑ ÑоваÑа:";
do {
System.out.println(s1);
// ÐÑовеÑка ÑлÑÑайнÑÑ
Ñимволов
while (!scanner.hasNextDouble()) {
System.out.println("ÐÑо вообÑе не ÑиÑло!" + s + "\n" + s1);
scanner.next();
}
price = scanner.nextFloat();
// ÐÑовеÑка: Ñена > 0
if (price == 0) {
System.out.println("ÐеÑплаÑнÑй ÑоваÑ? Хмм..." + s);
} else if (price <= 0) {
System.out.println("Ðго! ÐÑ Ð³Ð´Ðµ наÑли Ñакие ÑенÑ?" + s);
}
// ÐÑовеÑка - Ñ ÑÐµÐ½Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ Ð´Ð²Ðµ ÑиÑÑÑ Ð¿Ð¾Ñле деÑÑÑиÑной ÑоÑки
String[] strPrice = String.valueOf(price).split("\\.", 2); // Разбиваем ÑÑÑÐ¾ÐºÑ Ð½Ð° маÑÑив из 2-Ñ
ÑÑÑок: ÑÐµÐ»Ð°Ñ ÑаÑÑÑ Ð¸ дÑобнаÑ
if (strPrice[1].length() > DIGITS_AFTER_DOT) { // ÐÑли в дÑобной ÑаÑÑи болÑÑе 2 знаков
System.out.println("ÐноговаÑо копеек!" + s);
price = 0.0f;
}
} while (price <= 0);
return price;
}
}