0

所以我正在编写一个小程序来练习我即将到来的考试,它涉及创建一个类文件和一个应用程序文件。基本上,我不确定我的设置是否有效,因为 Scanner 类需要用户输入,而且我不知道类似于 nextInt() 或 nextDouble() 方法的字符串方法。这是我到目前为止所写内容的一个片段,我基本上想知道当我需要接受用户输入时如何使我正在使用的设置方法工作(我的一些设置方法使用字符串而不是原始数据类型,如一个 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() 之类的方法。这是完全的做法,所以如果有人能告诉我我是否有一个可靠的计划,我会很感激的,以及一旦我进入设置方法的应用程序过程,我应该怎么做才能接受用户输入。谢谢,这里的每个人总是那么乐于助人!!!:)

4

1 回答 1

1

Scanner确实有一个next方法,它读取一个令牌而不考虑类型并将其作为字符串返回,以及一个nextLine方法,它可以满足您的期望。一般来说,我建议使用nextor nextLineovernextInt和其他特定于类型的方法,只是因为如果输入不完全正确,您可能会遇到一些意外行为。

此外,您不应将两个字符串与==运算符进行比较。在 Java 中,==是一个引用(或浅层)比较,它本质上检查两个对象是否存储在您计算机上的同一位置;这适用于原始类型(整数、双精度数等),因为它们在语言中的表示方式。它不适用于字符串,因为字符串是 Java 中的复杂对象。相反,您应该使用该equals方法,该方法将进行深度比较 - 检查所有数据是否相同。

于 2014-03-26T03:13:56.207 回答