所以我正在编写一个小程序来练习即将到来的考试,它涉及创建一个类文件和一个应用程序文件。基本上,我不确定我的设置是否有效,因为 Scanner 类需要用户输入,并且我不知道类似于 nextInt() 或 nextDouble() 方法的字符串方法。这是我到目前为止所写的内容的片段,我基本上想知道当我需要接受用户输入时如何使我正在使用的 set 方法起作用(我的一些 set 方法使用字符串而不是原始数据类型,例如int 或 double)。只是好奇一旦我接触到应用程序类,我当前的格式是否可以工作,或者我是否需要更改我的方法以使用数字输入而不是字符串,然后稍后使用 switch 或 if 语句之类的东西来更改这些数值到一个字符串。这是我到目前为止在类文件中所写的内容:
import java.text.DecimalFormat;
public class GuitarStore
{
DecimalFormat dollar = new DecimalFormat("$#,##0.00");
private int stockNumber;
private int modelID;
private int pickupType;
private String color;
private String brand;
private String pickupType
private double totalValueOfStock;
public GuitarStore()
{
stockNumber = 0;
modelID = 0;
pickupID = 0;
color = "";
brand = "";
pickupType = "";
totalValueOfStock = 0.0;
}
public GuitarStore(int stkNum, int modID, int pickID, String clor, String brnd,
double totValOfStock)
{
setStock(stkNum);
setModel(modID);
setPickup(pickID);
setColor(clor);
setBrand(brnd);
setTotalValue(totValOfStock);
}
public void setStock(stkNum)
{
if (stkNum > 1 && stkNum <= 500)
{
stockNumber = stkNum;
}
else
{
stockNumber = 0;
}
}
public void setModel(modID)
{
if (modID >= 1 && modID <= 1000)
{
modelID = modID;
}
else
{
modelID = 0;
}
}
public void setPickup(pickID)
{
if (pickID > 1 && pickID <= 3)
{
pickupID = pickID;
}
else
{
pickupID = 0;
}
}
public void setColor(clor)
{
if (clor == "red")
color = clor;
else if (clor == "blue")
color = clor;
else if (clor == "purple")
color = clor;
else if (clor == "green")
color = clor;
else if (clor == "white")
color = clor;
else
System.out.println("We do not carry that color");
基本上,我最好奇的是 setColor 方法以及一旦我到达程序的应用程序部分它是否/如何工作。在以前的项目中,我只使用数字而不是字符串,然后使用 switch 语句将其转换为字符串。这对我来说是全新的,我正在冒险尝试新的东西。由于我需要获取用户输入来确定他们想要什么颜色,所以我不确定如何解析它,因为我无法使用像我上面所说的 nextDouble() 或 nextInt() 这样的方法。这是完全的练习,所以如果有人能告诉我我是否有一个可靠的计划,我会很感激,以及一旦我进入设置方法的应用程序过程,我应该做什么来获取用户输入。谢谢,这里的每个人总是那么乐于助人! :)
最佳答案
Scanner
确实有一个 next
方法,它读取 token (无论类型如何)并将其作为字符串返回,以及 nextLine
方法,它会达到您的期望。一般来说,我建议使用 next
或 nextLine
而不是 nextInt
和其他特定于类型的方法,因为如果输入不完全正确。
此外,您不应该使用 ==
运算符来比较两个字符串。在Java中,==
是一个引用(或浅层)比较,它本质上检查两个对象是否存储在计算机上的同一位置;这适用于原始类型(整数、 double 等),因为它们在语言中的表示方式。它不适用于字符串,因为字符串是 Java 中的复杂对象。相反,您应该使用 equals
方法,该方法将进行深度比较 - 检查所有数据是否相同。
关于java - 关于使用 Scanner 类创建类、设置方法和 String 数据类型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650690/