我是java的新手,而且我正在用一个任务撞墙。我需要让它工作。谁能告诉我哪里出错了?我需要为Carl's Carpentry编写一个应用程序,向用户显示可用项目列表:桌子,桌子,梳妆台或娱乐中心。允许用户输入与其中一个选项对应的字符串,并相应地将价格显示为$ 250,$ 325,$ 420或$ 600。如果用户输入无效项目,则显示错误消息。该程序必须包含并行数组。
import javax.swing.*;
public class CarpentryChoice
{
public static void main(String[] args)
{
String entry;
String [] item = {"table","desk","dresser","entertainment center"};
int [] price = {250, 325, 420, 600};
String strPiece;
int x, fi = 99;
String prompt = "Please select an item\n" +
"Our furniture is:\n" + "Table\n" +
"Desk\n" +
"Dresser\n" +
"Entertainment center\n" +
"Enter an item letter";
entry = JOptionPane.showInputDialog(null, prompt);
entry = strPiece.ToString();
for(x = 0; x < item.length; ++x)
if(strPiece == item[x])
fi = x;
if(fi == 99)
JOptionPane.showMessageDialog(null,
"Invalid item code entered");
else
{
if (fi > 2)
fi = fi - 3;
JOptionPane.showMessageDialog(null, "Furniture item " +
strPiece + " is priced at $" +
price[fi]);
}
System.exit(0);
}
}
任何帮助都非常感谢!!
谢谢!
答案 0 :(得分:0)
toString
代替ToString
。
为什么要分配entry
两次?第二个赋值将覆盖用户通过提示对话框输入的内容。在这种情况下,您不需要变量strPiece
。您可以使用entry
:
entry = JOptionPane.showInputDialog(null, prompt);
for(x = 0; x < item.length; ++x)
要比较String
,请使用equals
instead of the ==
operator:
if(entry.equals(item[x]))
在显示结果对话框的部分中,再次使用entry
而不是strPiece
(只需从整个代码中移除strPiece
):
JOptionPane.showMessageDialog(null, "Furniture item " +
entry + " is priced at $" +
price[fi]);