簡體   English   中英

線程“ main”中的異常java.lang.NumberFormatException:對於輸入字符串:“ a”

[英]Exception in thread “main” java.lang.NumberFormatException: For input string: “a”

 import java.io.*;

public class Joinsung {

    public static void main(String args[])throws IOException{

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        Float javag,comg,junjag; //this is grade
        String str;
        int name;

        System.out.println("name");
        str = in.readLine();
        System.out.println("java grade");
        String str1 = in.readLine();
        System.out.println("computer grade");
        String str2 = in.readLine();
        System.out.println("eletronic grade");
        String str3 = in.readLine();

        name = Integer.parseInt(str);
        javag = Float.parseFloat(str1);
        comg = Float.parseFloat(str2);
        junjag = Float.parseFloat(str3);

        System.out.println("this is your grade ");
        System.out.print("total : ");
        System.out.println(javag + comg + junjag );
        System.out.print("avgerage : ");
        System.out.println(javag + comg + junjag );
      }
  }

您好,我是學習Java的初學者。 我想看代碼! 但是我不能,所以我需要幫助。 幫我? 該代號為“成績計算器”,用戶可以插入成績並編寫程序進行計算器(平均,總計)。

我認為這是例外

name = Integer.parseInt(str);

您正在嘗試解析不是整數的字符串(名稱)。

您是要獲取“名稱”作為整數輸入還是應為String值? 嘗試將所有值輸入為整數或浮點數,程序將成功運行。

如果提供任何String值或什至空白,則程序將給出NumberFormatException將該值視為String。

我明白你的意思了 ;)

您試圖將“ A”解析為成績,但是“ A”實際上是字符串而不是數字成績,這是您在本示例中想要的。

因此name = Integer.parseInt(str); 在這種情況下將無效。 如果您解析了一個表示諸如Integer.parseInt("12345")類的數字的字符串,這將是有效的,並且這將輸出值為12345的Integer。

有幾種方法可以做到,但我的建議是保持輕松:)。

創建if塊

if(int >= 80) {
    string = "A"
} else if (int >= 60 && int <80) {
    string = "B";   
} etc...

在這種情況下, int表示“老師”輸入到系統中的數字。 然后,每個數字都可以與給定的文字等級相關聯

試試這個

import java.io.*;

public class Joinsung {

public static void main(String args[])throws IOException{

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    Float javag,comg,junjag; //this is grade
    String name;            // this is name

    System.out.println("name");
    name = in.readLine();       //getting value for name
    System.out.println("java grade");
    String str1 = in.readLine();
    System.out.println("computer grade");
    String str2 = in.readLine();
    System.out.println("eletronic grade");
    String str3 = in.readLine();

    javag = Float.parseFloat(str1);
    comg = Float.parseFloat(str2);
    junjag = Float.parseFloat(str3);

    System.out.println("this is your grade ");
    System.out.print("total : ");
    System.out.println(javag + comg + junjag );
    System.out.print("avgerage : ");
    System.out.println((javag + comg + junjag )/3);
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM