So my issue is, that i am hung up on the second while statement. I am supposed to allow the user to put have multiple lines of input(all given at the same time) and the while loop ends its self after all of the input is used the input is as follows
The speed limit is 40 mph, but you were going over 65
99 bottles of ...
The code only uses the first input then closes, when i use scan.hasNextLine it stays in an infinite loop
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
Scanner scan2 = new Scanner(System.in);
List<Integer> numbers = new ArrayList<>();
Pattern p = Pattern.compile("([-+]?[0-9]+(?:\\.[0-9]+)?)");
String phrase;
String[] tens = { "Ten", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };
String[] teens = { "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen",
"Nineteen" };
String[] ones = { "", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" };
phrase = scan.nextLine();
Matcher m = p.matcher(phrase);
while (m.find()) {
numbers.add(Integer.parseInt(m.group()));
}
// Solve
while (There is another line of input) {// i need some help here!!!
for (int i = 0; i < numbers.size(); i++) {
if (numbers.get(i) >= 20) {
if (numbers.get(i) % 10 == 0) {
phrase = phrase.replaceAll(Integer.toString(numbers.get(i)),
tens[((numbers.get(i) - numbers.get(i) % 10) / 10) - 1]);
} else {
phrase = phrase.replaceAll(Integer.toString(numbers.get(i)),
(tens[((numbers.get(i) - numbers.get(i) % 10) / 10) - 1] + "-"
+ ones[numbers.get(i) % 10]));
}
} else if (numbers.get(i) < 20 && numbers.get(i) > 10) {
phrase = phrase.replaceAll(Integer.toString(numbers.get(i)), teens[(numbers.get(i) % 10) - 1]);
} else if (numbers.get(i) < 10 && numbers.get(i) > 0) {
phrase = phrase.replaceAll(Integer.toString(numbers.get(i)), ones[numbers.get(i)]);
} else if (numbers.get(i) == 10) {
phrase = phrase.replaceAll(Integer.toString(numbers.get(i)), "Ten");
} else if (numbers.get(i) == 0) {
phrase = phrase.replaceAll(Integer.toString(numbers.get(i)), "Zero");
}
}
}
System.out.println(phrase);
}