This has different behavior when the bounds are incorrect.  The old version would return an empty string.  The new one throws StringIndexOutOfBoundsException.  Unless there's a compelling reason to prefer the latter, you should check the bounds.  (The class itself does not.)