Java - 如何将字符串扫描到数组?

use*_*582 2 java arrays string java.util.scanner

我在将扫描信息放入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");
}
Run Code Online (Sandbox Code Playgroud)

运行上述过程后,将运行一个调用的方法addFriends(),其中扫描程序将数据放入friend结构中.

将信息扫描到阵列中的最佳方法是什么?使用该Scanner in = new Scanner(System.in);功能是明智的,因为'Friend'中有很多不同的元素:( String name,String username,String city,String message)?

lei*_*ero 5

如果您正在从控制台接收输入并且可以安全地假设它不会被不正确地格式化,您可以使用:

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

这将收集他们输入的所有信息.如果他们的输入是:

"Jaime Smiths, abcd5432, Sydney, how's going"
Run Code Online (Sandbox Code Playgroud)

然后,您可以用逗号分隔值:

String[] values = line.split(",");
for(String s: values)
    System.out.println(s);
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

"Jaime Smiths"
" abcd5432"
" Sydney"
" how's going"
Run Code Online (Sandbox Code Playgroud)

您将要删除尾随和/或前导空格字符,但这将为您提供所需的值,然后您可以连接它们并将它们添加到现有数组:

friends[5] = new Friend(values[0], values[1], values[2], values[3]);
Run Code Online (Sandbox Code Playgroud)