There is simply no point in "taking the first nine numbers out".
And there shouldn't BE a test for the string being empty, anywhere.
'' '-' '---' and so on should all be handled the same way.

Oh well, what stops you doing

���� digits := aString select: [:each | each ~= $-].
���� digits size = 10 ifFalse: [^false].
���� lastDigit := digits la ost.
���� digits := digits copyFrom: 1 to: 9.
���� ( (lastDigit = $X or: [lastDigit isDigit]) and: [
�������� digits allSatisfy: #isDigit]
���� ) ifFalse: [^false].

Now my code does not do this, but it is just 16 lines of code with
nothing that it would make sense to extract.

On Wed, 2 Sep 2020 at 22:24, Roelof Wobben <r.wobben@home.nl> wrote:
Yep, I know that isValidIsbn is the method that must output if a isbn is
valid or not.

What I want to do is take the first 9 characters out so I can convert
them to a array of numbers where I can do the calculation on.
And take out the last char so I can seperate test if that is a valid
char. So between the 0 and 9 or a X

I do not think I would have do all the checks in that only method
because it would be a very big method then.

but if I understand you well�� also the test if a string is empty should
be called from the isValidIsbn method or even checked there.

Roelof