В Java как инициализировать элементы в массиве в несколько строк, а не в одну? - PullRequest
0 голосов

Здравствуйте, это очень простой вопрос, но я не знаю ответа. Я просто хочу знать, как инициализировать каждый элемент массива в несколько строк, потому что я знаю, как это сделать в одну строку.

Мой код их инициализации в одну строку выглядит следующим образом:

String input = scanner.nextLine();

String[] array = input.split("\\s+");

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Использование ArrayList

String s = "Too Many\nLines Here\nNo its only three"; 
Scanner scanner = new Scanner(s); 
List<String> array = new ArrayList<>(Arrays.asList(scanner.nextLine().split("\\s+")));
//to add next line
array.addAll(Arrays.asList(scanner.nextLine().split("\\s+")));
//.. and so on   
0 голосов
/ 30 мая 2019

В Java массив должен иметь фиксированный размер, и вы не можете изменить его после объявления. Что касается вашей проблемы, вы можете создать массив, размер которого больше, чем вы ожидаете. Поскольку вы не знаете, сколько он будет зацикливать, вы можете сделать цикл while и маркер для прекращения ввода («выход» или «остановка» или что-то еще, что не может ввести специальный пользователь ...). Например:

String[] arr = new String[1000];
Scanner scanner = new Scanner(System.in);
int counter = 0;

while (true) {
    String input = scanner.nextLine();
    if ("stop".equalsIgnoreCase(input)) {
        break;
    }
    arr[counter++] = input;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...