替换java中的文本?

替换java中的文本?,java,Java,不知是否有人能帮我解答我的问题?java中是否有允许我向用户创建一个promt,允许他们更改displayOptions方法中的选项?基本上我想做的就是把退出改为结束,如果这有意义的话 import java.util.Scanner; public class part3 { private static void displayOptions() { System.out.println("Choose your option:");

不知是否有人能帮我解答我的问题?java中是否有允许我向用户创建一个promt,允许他们更改displayOptions方法中的选项?基本上我想做的就是把退出改为结束,如果这有意义的话

import java.util.Scanner;

public class part3 {


        private static void displayOptions() {
            System.out.println("Choose your option:");
            System.out.println("**** West End Theatre Booking System ****");
        System.out.println("=========================================");
        System.out.println("1. List all shows and availability");
        System.out.println("2. Book and print ticket(s)");
        System.out.println("3. Cancel a ticket");
        System.out.println("4. Display theatre/show seating map");
        System.out.println("5. Show income/accounts");
        System.out.println("6. Assign new show to theatre");
        System.out.println("7. Exit");
    }

    //--------------------------------------------------


    private static int getUserOption(String prompt) {
        int option;
        Scanner k=new Scanner(System.in);
        System.out.print(prompt);
        option=k.nextInt();
        return option;
    }
    //-------------------------------------------------


    public static void main(String[] args) {

        int selection,wick,oli,phant,wickremain,oliremain,phantremain;
        selection=0;        
        wickremain=24;      wick=0;
        oliremain=40;       oli=0;
        phantremain=32;     phant=0;

        do {

        displayOptions();
        selection=getUserOption("Option? (1-7): ");

        System.out.println();

        if(selection==1){ 


        System.out.println("Wicked (Apollo)");
        if  ( wick>=24){
        System.out.println("Sold Out");
    }   else {      
        System.out.println(wick +" ticket(s) Sold, "+ wickremain+ " ticketAvailable");
    }


        System.out.println("Oliver! (Drury Lane)");
        if  ( oli>=40){
        System.out.println("Sold Out");
    }   else {      
        System.out.println(oli +" ticket(s) Sold, "+ oliremain +" tickets      Available");
    }


        System.out.println("Phantom of the Opera (Her Majesty's)");
        if  ( phant>=32){
        System.out.println("Sold Out");
    }   else {      
        System.out.println(phant +" ticket(s) Sold, " +phantremain+ " tickets Available");
        }
        }

根据我对你问题的理解,我将这样解决:

只需在
displayOptions()
方法中添加一个复选框

首先,必须向类中添加一个字段,以了解是否要显示Finish

public class part3 {
    private static boolean showFinish = false;
然后在方法中添加
if
子句:

if (showFinish) {
    System.out.println("7. Finish");
} else {
    System.out.println("7. Exit");
}
最后,当您要更改为完成时,请将其置于调用
displayOptions()
之前:


不要在Java中重新发明提示符,使用可用的工具,例如:

用于解析参数

控制台上的颜色输出

把它变成一个变量

String optionSeven = "blah";

然后根据条件更新选项甚至其他地方?

您可以使用选择语句

String exit = "Exit";
String finish = "Finish";
String doh = "DOHH!";

if (someCondition){
    System.out.println("7: " + exit);
} else if (someOtherCondition){
    System.out.println("7: " + finish);
} else {
    System.out.println("7: " + doh);
}

如果将所有选项保存为字符串数组,则可以要求用户输入要更改的索引位置。因此:

String[] menuOptions = { option1, option2, etc.};
for(int i = 0; i < menuOptions.length - 1; i++)
    System.out.println((i+1) + ". " + menuOptions[i]);

System.out.println("What option would you like to change?");

int temp = k.nextInt();

System.out.println("What would you like that option to become?");

menuOptions[temp-1] = k.nextLine();
String[]菜单选项={option1、option2等};
对于(int i=0;i
据我所知,您希望能够在运行时动态更改菜单选项的文本。我相信你最好的选择是为你的菜单项使用一个列表或其他容器,并调用一个方法来更改给定项的文本。例如,您可能有一个名为options的成员变量:

private List options=getDefaultOptions()

您可以使用一种方法来生成默认选项:

public List<String> getDefaultOptions() {
    List<String> defaultOptions = new ArrayList<>();
    defaultOptions.add("List all shows and availability");
    defaultOptions.add("Book and print ticket(s)");
    defaultOptions.add("Cancel a ticket");
    defaultOptions.add("Display theatre/show seating map");
    defaultOptions.add("Show income/accounts");
    defaultOptions.add("Assign new show to theatre");
    defaultOptions.add("Exit");
    return defaultOptions;
}
然后,在某个时刻,您可以提示用户更改特定选项的文本,并使用其输入的文本调用此方法:

public void changeOptionText(int optionNumber, String newText) {
    options.set(optionNumber-1, newText);
}

...

// Used like this
changeOptionText(7, "finish");
当然,你会想做一些边界检查,并涵盖一些其他情况,但这应该让你开始

public void displayOptions() {
    System.out.println("Choose your option:");
    System.out.println("**** West End Theatre Booking System ****");
    System.out.println("=========================================");

    int optionNumber = 0;
    for (String option : options) {
        System.out.println(++optionNumber + ". " + option);
    }
}
public void changeOptionText(int optionNumber, String newText) {
    options.set(optionNumber-1, newText);
}

...

// Used like this
changeOptionText(7, "finish");