public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
ArrayList<String> myList = new ArrayList<>();
System.out.println("Введите числа");
while (true) {
String number = input.next();
System.out.println(number);
if (number == "!") {
break;
}
myList.add(number);
System.out.println(myList);
}
}
}
ArrayList<String> myList
Вы создаете ArrayList с параметрированным типом данных String.matches()
и проверять на то, что пользователь ввел именно цифру или число.Integer.parseInt(str)
Ведь, сравнить строки вы не можете и вам придется привести строки к типу int.if(number == "!")
equals()
. Вам не удается выйти из цикла именно из-за этого. используйте equals()
sc.nextInt()
, а из цикла выходить другим способом. Например, нажатием кнопки, которую вы назначите на выход из цикла. Например, добавив event listener для кнопки Enter и по нажатию кнопки выходите из цикла. А далее итерировать по списку и сравнить данные и выдать макс. значение import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
List<Integer> myList = new ArrayList<>();
while (true) {
System.out.print("Введите число: ");
String number = input.next();
if (number.equals("!")) { //Используйте IDE и не забивайте на её подсказки.
// Хочу вам предложить перейти на Python или Kotlin.
// По крайне мере на первое время там не будет возникать вопросов, "почему equals".
break;
} else {
String trim = number.trim();//Убрать пробелы и прочее по бокам (можно и не использовать)
int e = Integer.parseInt(trim); // Спарсить число
myList.add(e);
}
}
int max = max(myList); // вместо самописной функции можно было бы использовать стримы, но так пока что проще.
// и опять же повод посмотреть в сторону Kotlin
System.out.println(max);
}
private static int max(List<Integer> arr) {
int max = Integer.MIN_VALUE;
for (int i : arr) {
if (i > max) max = i;
}
return max;
}
}