String () { currentPosition = newPosition >= 0 && !delimsChanged ? newPosition : skipDelimiters(currentPosition); /* Reset these anyway */ delimsChanged = false; newPosition = -1; if (currentPosition >= maxPosition) { throw new NoSuchElementException(); } int start = currentPosition; currentPosition = scanToken(currentPosition); return str.substring(start, currentPosition); }