簡體   English   中英

文本無法在控制台中正確打印

[英]Text doesn't print properly in console

我有一個由兩種方法組成的簡單程序。 第一個是詢問玩家是否想提出建議或退出游戲的菜單。 如果他們選擇提出建議,則調用第二種方法。 第二種方法是假設打印一個表單供用戶填寫。 所以它看起來像這樣:

Person: 
Weapon:
Room: Library

庫已為用戶填寫。 其余的可以這樣填寫:

Person: Professor Plum
Weapon: Revolver
Room: Library

問題是打印出來的東西看起來不像我想要的。 打印出來的內容是這樣的:

Person: Weapon: 

人物和武器打印在同一行,用戶只能填寫武器。 此外,在武器填滿之前,房間不會打印出來。 無論如何,我可以讓它看起來像我在上一個例子中的布局嗎?

import java.util.Scanner;

public class Main {

private String[] suggestions = new String[3];
private Scanner sc = new Scanner(System.in);
private String room = "Library";

public void menuSelection() {
    System.out.println("Please make a selection...\n");

    System.out.println("1. Make a suggestion");
    System.out.println("2. Exit game");

    int selection = sc.nextInt();

    if (selection == 1)
        makeSuggestion();
    else 
        System.exit(0);
}

public void makeSuggestion() {
    System.out.print("Person: ");
    suggestions[0] = sc.nextLine();

    System.out.print("Weapon: ");
    suggestions[1] = sc.nextLine();

    System.out.println("Room: " + room);
    suggestions[2] = room;
}

public static void main(String[] args) {
    Main main = new Main();
    main.menuSelection();
}
}

您沒有打印值。 使用System.out.println()打印這些值。

System.out.print("Person: ");
suggestions[0] = sc.nextLine();
System.out.println(suggestions[0]);

System.out.print("Weapon: ");
suggestions[1] = sc.nextLine();
System.out.println(suggestions[1]);

System.out.print("Room: " + room);
suggestions[2] = room;
System.out.println(suggestions[2]);

輸出:

Person: Professor Plum
Weapon: Revolver
Room: Library

使用sc.nextLine(); int selection = sc.nextInt();

這將給出欲望輸出

System.out.println 將在 System.out.print 將在同一行上打印的新行上打印。 你應該使用 System.out.println() 而不是 System.out.print()

這就是導致問題的原因:

int selection = sc.nextInt();

例如,用 sc.nextLine() 替換它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM