如何从System.in获取带空格的字符串?

Nat*_*055 -1 java string input

当我学习Java时,我有这个程序我搞乱了:

package com.nathan2055.booksamples;

import static java.lang.System.out;
import java.util.Scanner;

/**
 * @author Nathan2055
 */
public class Copycat {

    private static Scanner keyboard;

    /**
     * @param args
     */
    public static void main(String[] args) {
        keyboard = new Scanner(System.in);

        out.println("This program will copy whatever you type.");
        out.println("Please enter a phrase:");

        String inputPhrase = keyboard.next();
        out.println();
        out.println(inputPhrase);
    }

}
Run Code Online (Sandbox Code Playgroud)

但是有一个问题.如果你运行它并输入一个带空格的短语,它只会将字符串保存到空格中.如何保存整个字符串呢?

Mar*_*los 5

使用nextLine()而不是next()