什么是NumberFormatException以及如何解决?

什么是NumberFormatException以及如何解决?

Error Message:

Exception in thread "main" java.lang.NumberFormatException: For input string: "Ace of Clubs"

    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

    at java.lang.Integer.parseInt(Integer.java:580)

    at java.lang.Integer.parseInt(Integer.java:615)

    at set07102.Cards.main(Cards.java:68)

C:\Users\qasim\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1

BUILD FAILED (total time: 0 seconds)

我的循环:


while (response != 'q' && index < 52) {

    System.out.println(cards[index]);

    int first_value = Integer.parseInt(cards[index]);

    int value = 0;

    //Add a Scanner

    Scanner scanner = new Scanner(System.in);

    System.out.println("Will the next card be higher or lower?, press q if you want to quit");

    String guess = scanner.nextLine();

    if(cards[index].startsWith("Ace")) { value = 1; }

    if(cards[index].startsWith("2")) { value = 2; }

    if(cards[index].startsWith("3")) { value = 3; }

    //checking 4-10

    if(cards[index].startsWith("Queen")){ value = 11; }

    if(cards[index].startsWith("King")){ value = 12; }

    if(guess.startsWith("h")){

        if(value > first_value){ System.out.println("You answer was right, weldone!"); } 

        else { System.out.println("You answer was wrong, try again!"); }

    } else if(guess.startsWith("l")){

        if(value < first_value) { System.out.println("You answer as right, try again!"); }

        else { System.out.println("You answer was wrong, try again!"); }

    } else { System.out.println("Your was not valid, try again!"); }

    scanner.close();            

    index++;

}//end of while loop


跃然一笑
浏览 13575回答 3
3回答

杨__羊羊

貌似cards[]是字符串数组,你正试图转换Ace of Clubs到整数。int&nbsp;first_value&nbsp;=&nbsp;Integer.parseInt(cards[index]);
打开App,查看更多内容
随时随地看视频慕课网APP