将字符串复制到Java中的数组

将字符串复制到Java中的数组,java,arrays,Java,Arrays,我一直在写一个程序,可以计算一个人的分数,但我无法将字符串转换成字符串数组(当我输入3个单词时,数组长度是1)。下面是我的代码。我哪里做错了 protected static String[] getParts(){ Scanner keyboard = new Scanner(System.in); System.out.println( "What assignments make up your overall grade? (Homework, quizzes,

我一直在写一个程序,可以计算一个人的分数,但我无法将字符串转换成字符串数组(当我输入3个单词时,数组长度是1)。下面是我的代码。我哪里做错了

    protected static String[] getParts(){
    Scanner keyboard = new Scanner(System.in);

    System.out.println( "What assignments make up your overall grade? (Homework, quizzes, etc)" );
    String parts = keyboard.next();     

    Pattern pattern = Pattern.compile(" ");
    String[] assignments = pattern.split(parts);

    // to check the length

    for ( int i = 0; i < assignments.length; i++ )
        System.out.println(assignments[i]);

    return assignments;

}
受保护的静态字符串[]getParts(){
扫描仪键盘=新扫描仪(System.in);
什么作业构成了你的总成绩?(家庭作业、测验等);
字符串部分=键盘.next();
Pattern=Pattern.compile(“”);
字符串[]赋值=模式。拆分(部分);
//检查长度
for(int i=0;i
Scanner::nextLine

Scanner::next()
只使用一个单词(它在空白处停止)。您需要的,它会消耗所有内容直到下一行,并将拾取您的所有单词。

请改用keyboard.nextLine:

    static String[] getParts()
    {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("What assignments make up your overall grade? (Homework, quizzes, etc)");
        String[] assignments = keyboard.nextLine().split(" ");

        for (String i : assignments)
            System.out.println(i);

        return assignments;
    }

注意:您也不需要定义模式。您也不需要返回任何内容,因为该方法已经打印了字符串。当然,除非您计划在其他地方使用这些值

请参见,这是否回答了您的问题?