This week's book giveaway is in the Java in General forum.We're giving away four copies of Think Java: How to Think Like a Computer Scientist and have Allen B. Downey & Chris Mayfield on-line!See this thread for details.
Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!

# Extracting numbers from from a user input and comparing it to

Andrew Albers
Greenhorn
Posts: 10
i personally cannot get lines 22-26 to do what they are supposed to do. It is supposed to reverse the guess and random number (ex: 123 = 321). Im just looking for a little bit of help on those lines. thankyou.

Henry Wong
author
Marshal
Posts: 21112
78

The first line of the condition checks to see if the units and the tens digits are equal. The second line checks to see if the units digit are equal. This makes the second line moot, as any test that will pass the first line will also pass the second line.

The third line of the condition checks to see if the hundreds digit and higher are equal. The fourth line checks to see if the tens digit and higher are equal. This makes the third line moot, as any test that will pass the fourth line will also pass the third line.

And finally, to pass both the first and fourth lines, the two numbers must be the same. This makes the whole condition moot, as we know the numbers are not exactly equal, as it would not have arrived at this "else" clause if they were equal.

Henry

Rob Spoor
Sheriff
Posts: 20526
54
Basically, you would need a better way to check if one digit is in another number:

You would then have to call this method for each of the digits in your number:

This check will still fail though, if either the guess or the lotto has duplicate digits and there is a match like that. For instance, if the lotto number is 123 and the guess is 111, then you still have a problem - 1 is in the lotto number. Checking both ways (digitIsInNumber(lotto % 10, guess)) will also not solve this; just check with lotto 112 and guess 122.

You could try sorting the digits within the number, and then check if the sorted values are equal:

That brings us to one small flaw in your logic: you never check if the user input is in the right range.

Andrew Albers
Greenhorn
Posts: 10
thank you very much for the help.