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);