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