You are calling str.substring(i, j-i)
which means substring(beginIndex, endIndex)
, not substring(beginIndex, lengthOfNewString)
.
One of assumption of this method is that endIndex
is greater or equal beginIndex
, if not length of new index will be negative and its value will be thrown in StringIndexOutOfBoundsException
.
Maybe you should change your method do something like str.substring(i, j)
?
Also if size
is length of your str
then
for (int i = 0; i <= size; i++)
should probably be
for (int i = 0; i < size; i++)