Java 使用扫描仪时出现意外的行打印

Java 使用扫描仪时出现意外的行打印,java,Java,我正在使用practice it for java,对以下练习有疑问: 编写一个名为NameGame的完整程序,用户在其中输入名字和姓氏,并按以下格式打印一首关于他们的名字的歌曲。使用一种避免冗余的方法 你叫什么名字?五十美分 五十五十,波比提 香蕉法纳50 费-费-费-费-费-费 五十 分分,博弯 香蕉粉 费用管理 分钱 这是我为答案编写的代码: public class TheNameGame { public static void main(String[] args) {

我正在使用practice it for java,对以下练习有疑问:

编写一个名为NameGame的完整程序,用户在其中输入名字和姓氏,并按以下格式打印一首关于他们的名字的歌曲。使用一种避免冗余的方法

你叫什么名字?五十美分 五十五十,波比提 香蕉法纳50 费-费-费-费-费-费 五十 分分,博弯 香蕉粉 费用管理 分钱

这是我为答案编写的代码:

public class TheNameGame {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String first = scan.next();
        String last = scan.next();
        String newFirst = first.substring(1);
        String newLast = last.substring(1);

        System.out.println("What is your name? " + first + " " + last);
        playGame(first, newFirst);
        playGame(last, newLast);
    }
}

public static void playGame(String name, String nn) {
    System.out.println(name + " " + name + ", " + "bo-B" + nn);
    System.out.println("Banana-fana fo-F" + nn);
    System.out.println("Fee-fi-mo-M" + nn);
    System.out.println(name.toUpperCase() + "!");
}
这是输出:

What is your name? Fifty Cent
Fifty Fifty, bo-Bifty
Banana-fana fo-Fifty
Fee-fi-mo-Mifty
FIFTY!
Cent Cent, bo-Bent
Banana-fana fo-Fent
Fee-fi-mo-Ment
CENT!
五十美分 你的名字叫什么?五十美分 五十五十,波比提 香蕉法纳50 费-费-费-费-费-费 五十 分分,博弯 香蕉粉 费用管理 分钱

我的问题是,;第一行50美分从哪里来? 先谢谢你

我的问题是,;第一行50美分从哪里来

输入时:

Fifty Cent
String first=scan.next;将读取50和字符串last=scan.next;读分

为此,在打印时:

System.out.println("What is your name? " + first + " " + last);
它将打印:

What is your name? Fifty Cent
我的问题是,;第一行50美分从哪里来

它不是从任何地方来的。你输入它,当你这样做

String first = scan.next();
String last = scan.next();

50美分留在屏幕上。请记住,您输入的值将继续保留在屏幕上。

我看到您试图提问,然后获取输入。您只需在主方法中做几个小的更改。您的主要方法应如下所示:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("What is your name? "); //asks question first,
    String first = scan.next();              //THEN accepts first
    String last = scan.next();               //and last name
    String newFirst = first.substring(1);
    String newLast = last.substring(1);

    playGame(first, newFirst);
    playGame(last, newLast);
}
这将提供以下输出:

What is your name? Fifty Cent
Fifty Fifty, bo-Bifty
Banana-fana fo-Fifty
Fee-fi-mo-Mifty
FIFTY!
Cent Cent, bo-Bent
Banana-fana fo-Fent
Fee-fi-mo-Ment
CENT!

它首先提出问题,然后接受用户的名字和姓氏。你的问题只是你的代码出了问题。

这首歌是从哪里来的?你的练习是写名字,姓,然后song@F.Moss这个答案可以吗?你还有什么要我补充的吗?这太完美了,谢谢!使用扫描仪对我来说是新的,所以它非常有用。谢谢你,它非常有用。使用扫描仪对我来说是新事物,我从来没有想过它会留在屏幕上。