2017-03-13 5 views
1

Javaで新しい、個人的な計算プログラムを作成します。 if(Block.equals( "Furnace"))に "炉"のチェックを含めるように変更する必要はありますか?私は小文字に "ブロック"を設定しようとしましたが、ただ破裂し、 "炉"または "炉"について計算しません。が等しい場合は、文のチェックを二重にします

ブロックは、ユーザーが入力するテキストフィールド(炉または炉)、ブロック=「炉」または「炉」の場合です。私はそれが何か配列に記載されているかどうかを確認する配列を使用する必要があります、それは式を実行する?

private void CalculateCraftButtonActionPerformed(ActionEvent e) 
    { 

     double BToMake = 0; 
     double TotalCraft = 0; 

     String Block = BlockToCraft.getText(); 
     if(Block.equals("Furnace")) 
     { 
      BToMake = Double.valueOf(QuantityCraftField.getText()).doubleValue(); 

      double Furnace = 8; 
      double furnace = 8; 


      TotalCraft = Furnace * BToMake; 
      TotalCraft = furnace * BToMake; 

      TotalCraftField.setText(String.valueOf(TotalCraft)); 
     } 
+0

(Block.equals( "Furnace"))にも "炉"が含まれています – Exxane

+3

'Block.equalsIgnoreCase(" Furnace ")' –

+0

"furNace"はどうですか? – shmosel

答えて

3

あなたは私を小文字に「ブロック」を設定しようとしたBlock.equalsIgnoreCase("Furnace")

1

文字列メソッドを持っているequalsIgnoreCasehere

あなたが行うことができます:

"furnace".equalsIgnoreCase(block) 

を、あなたは、変数は、Java(ブロックの代わりブロック内で宣言されなければならないどのようになっているはずです

2

を使用する必要がありますが、それだけで破壊し、「炉」や「炉」のいずれかのためではない 計算を行います。

あなたはblock.toLowerCase()呼び出しによって返された新しいStringオブジェクトを使用する場合、それが動作するはずです:

String block = BlockToCraft.getText(); 
if(block.toLowerCase().equals("furnace")) { 
    ... 

String sが不変そうです:場合は取得しよう

String block = "Furnace"; 
String newBlock = block.toLowerCase(); 
System.out.println(block); // displays "Furnace" 
System.out.println(newBlock); // displays "furnace" 
関連する問題