forked from Lilliklave/Hundregistret
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHandleUserInput.java
47 lines (38 loc) · 1.33 KB
/
HandleUserInput.java
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
//
import java.util.ArrayList;
import java.util.Scanner;
import java.io.InputStream;
public class HandleUserInput {
private static final String END_OF_TEXT = "?> ";
private static ArrayList<InputStream> inputStreamList = new ArrayList<>();
private Scanner scanner;
public HandleUserInput() {
this(System.in);
}
public HandleUserInput(InputStream inputStream) {
if (inputStreamList.contains(inputStream))
throw new IllegalStateException("Error: Stream already in use!");
inputStreamList.add(inputStream);
this.scanner = new Scanner(inputStream);
}
public String readText(String userInput) {
System.out.print(userInput + END_OF_TEXT);
String input = formatString(scanner.nextLine().trim());
return input;
}
public int readInteger(String userInput) {
System.out.print(userInput + END_OF_TEXT);
int input = scanner.nextInt();
scanner.nextLine();
return input;
}
public double readDouble(String userInput) {
System.out.print(userInput + END_OF_TEXT);
double input = scanner.nextDouble();
scanner.nextLine();
return input;
}
private String formatString(String string) {
return string.substring(0, 1).toUpperCase() + string.substring(1).toLowerCase();
}
}