Error Message:
Exception in thread \"main\" java.lang.NumberFormatException: For input string: \"Ace of Clubs\"
at java.lang.NumberFormatException.forInputString
A NumberFormatException
means that Integer.parseInt()
couldn't translate the string into a number.
I would suggest one of two options:
Encapsulate cards as a name(string)/value(int) combo. Use the value to do comparisons, and the name to present info to the user. Cards[]
then becomes a list of cards, not strings.
Parse the strings yourself. Which may be easier, since you've already done it with the if(cards[index].startsWith("Ace")) { value = 1; }
bits. You can move those into a function called CardToInt()
(or whatever), and use that function instead of Integer.parseInt()
.
Looks like cards[]
is String array and you are trying to convert Ace of Clubs
to Integer.
int first_value = Integer.parseInt(cards[index]);
java.lang.NumberFormatException
occurs when you are trying to parse some input which not a Number string.
In your case your trying to parse a string (which not has number )as Integer. As its not possible NumberFormatException exception occured.
int first_value = Integer.parseInt(cards[index]);//cards[index] value should be //number string "123" not "abc"