0

そこで、試験の練習用に小さなプログラムを書いています。これには、クラス ファイルとアプリケーション ファイルの作成が含まれます。基本的に、ユーザー入力が Scanner クラスから必要なため、セットアップが機能するかどうかはわかりません。また、nextInt() メソッドや nextDouble() メソッドに似た Strings のメソッドを認識していません。ここに私がこれまでに書いたもののスニペットがあります.ユーザー入力を取得する必要があるときに、使用しているセットメソッドをどのように機能させることができるかを基本的に考えていました. int または double)。アプリケーションクラスに慣れたら、現在のフォーマットが機能するかどうか興味があります. または、文字列の代わりに数値入力を使用するようにメソッドを変更し、後でスイッチまたは 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 does have a next method, which reads a token regardless of type and returns it as a String, as well as a nextLine method, which does what you expect. In general, I would suggest using next or nextLine over nextInt and other type-specific methods, just because you may run into some unexpected behaviour if the input isn't exactly right.

Also, you shouldn't compare two strings with the == operator. In Java, == is a reference (or shallow) comparison, which essentially checks if two objects are stored in the same place on your computer; this works for primitive types (ints, doubles, etc.), because of how they're represented in the language. It will NOT work for Strings, because Strings are complex objects in Java. Instead you should use the equals method, which will do a deep comparison - checking if all of the data is identical.

于 2014-03-26T03:13:56.207 に答える