Java - Как сканировать строку в массив?

У меня проблемы с помещением отсканированной информации в массив в Java.

private void initializeFriends()
{
    //initialize the size of array:
    friends = new Friend[200];
    //initialize the first 5 objects(Friends):
    friends[0] = new Friend("Rodney Jessep", "rj2013", "Brisbane", "hi!");
    friends[1] = new Friend("Jaime Smiths", "abcd5432", "Sydney", "how's going");
    friends[2] = new Friend("William Arnold", "william1994", "Brisbane", "boom");
    friends[3] = new Friend("James Keating", "qwerty52", "Newcastle", "Hey");
    friends[4] = new Friend("Amy Richington", "IAmRichAmy", "Perth", "Yo");
}

После запуска описанной выше процедуры вызывается метод addFriends() запускается, когда приходит сканер, чтобы поместить данные в friend состав.

Каков наилучший способ сканирования информации в массив? Будет использовать Scanner in = new Scanner(System.in); быть мудрым, поскольку в "Друге" так много разных элементов: (имя строки, имя пользователя строки, город строки, сообщение строки)?

2 ответа

Если вы получаете ввод с консоли и можете с уверенностью предположить, что он не будет неправильно отформатирован, вы можете использовать:

Scanner in = new Scanner(System.in):  //receives input from the console
String line = in.nextLine(); //receives everything they type until they hit enter

Это займет всю информацию, которую они вводят. Если их ввод:

"Jaime Smiths, abcd5432, Sydney, how's going"

Затем вы можете разделить значения запятыми:

String[] values = line.split(",");
for(String s: values)
    System.out.println(s);

Дает следующий вывод:

"Jaime Smiths"
" abcd5432"
" Sydney"
" how's going"

Вы захотите удалить завершающие и / или начальные пробельные символы, но это даст вам нужные значения, а затем вы можете объединить их и добавить их в существующий массив:

friends[5] = new Friend(values[0], values[1], values[2], values[3]);

Если вы хотите напечатать Arraylist в строку сканером

Scanner scan=new Scanner(System.in);
ArrayList<String> list=new Arraylist<String>();
list.add(Scan.nextline);
System.out.println(list);
Другие вопросы по тегам