亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

返回錯誤 int 值的變量

返回錯誤 int 值的變量

慕無忌1623718 2024-01-17 20:49:54
編寫了以下幾行代碼,旨在將 2 個值插入到對話框中,并分配給 2 個不同的變量。假設我插入 22,那么它應該在文本字段中顯示為 2x2 = 4,相反,它會打印類似 50 x 50 = 2500 的內容。String a = JOptionPane.showInputDialog("Qual cálculo deseja fazer? (AB = A x B)", "AB");   aNum = a.charAt(0);   bNum = a.charAt(1);   int cNum = aNum*bNum;    Game.getNumbers(aNum, bNum);    JOptionPane.showInputDialog(aNum, bNum);    TF1.setText(Game.First() +" x "+ Game.Second() +" = "+ cNum);涉及班級:public class Game1 {private int first = 0;private int second = 0;private int score = 0;private int hiScore = 0;public void numTotalCheck(int a){    String option1 = null;    char option = 0;    do{    if (a == (first*second)){        JOptionPane.showMessageDialog(null, "Parabéns. Você acertou!");        score = score + 100;        if(score > hiScore){            hiScore = score;        }    }else{        score = score - 100;        if(score > hiScore){            hiScore = score;        }        JOptionPane.showMessageDialog(null, "Errado!");        option1 = JOptionPane.showInputDialog("Deseja jogar novamente? <S/N>");        option = option1.charAt(0);    }    }while((option == 's') || (option == 'S'));}public void getNumbers(int a, int b){    first = a;    second = b;}public int First(){    return first;}public int Second(){    return second;}結果:“22”輸入的結果。
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

該函數charAt(index)返回一個 char,然后您可以將其隱式解析為 int。'2' 的 int 值為 50,所以它是 50 * 50 = 2500。


一個簡單的解決方法是要求輸入格式如 A;B。然后你可以執行以下操作:


String s =JOptionPane.showInputDialog("Enter two numbers like this: Number A;Number B", "AB");

String[] temp = s.split(";");

if(temp.length == 2) {

  try {

    int aNum = Integer.parseInt(temp[0]);

    int bNum = Integer.parseInt(temp[1]);

    int cNum = aNum*bNum;

  } catch(NumberFormatException nfe) {

    // One or both of the values weren't ints.

  }

} else {

  // Some error here, because of too few/ too many values

}


查看完整回答
反對 回復 2024-01-17
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

您將字符 ( char) 視為數字 ( integer)。這是一個隔離您所看到的內容的示例。


此代碼采用字符串值“2”并從中獲取一個字符,然后打印該字符。


char c = "2".charAt(0);

System.out.println("c: " + c);


--> c: 2

如果您嘗試相同的操作,但將結果存儲為 an int,則存儲的值不是同一件事,而是“50”:


int i = "2".charAt(0);

System.out.println("i: " + i);


--> i: 50

在幕后,任何字符值都以數字表示,因此字符“2”是整數 50。您可以挖掘 ASCII 圖表來查看它們是如何映射的。


有很多方法可以修復代碼,但由于您已經從字符串值開始,因此獲得正確結果的一種方法是使用Integer.parseInt(),如下所示:


int parsedValue = Integer.parseInt("2");

System.out.println("parsedValue: " + parsedValue);


--> parsedValue: 2


查看完整回答
反對 回復 2024-01-17
  • 2 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號