diff options
Diffstat (limited to 'linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java')
-rw-r--r-- | linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java b/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java index 6ee82a6fddb..83110c0021e 100644 --- a/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java +++ b/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java @@ -212,11 +212,9 @@ public class GramSplitter { /** Substring in code point space */ public UnicodeString substring(int start, int codePoints) { - int offset = s.offsetByCodePoints(start, Math.min(codePoints, s.codePointCount(start, s.length()))); - if (offset < 0) - return new UnicodeString(s.substring(start)); - else - return new UnicodeString(s.substring(start, offset)); + int cps = codePoints * 2 <= s.length() - start ? codePoints + : Math.min(codePoints, s.codePointCount(start, s.length())); + return new UnicodeString(s.substring(start, s.offsetByCodePoints(start, cps))); } /** Returns the position count code points after start (which may be past the end of the string) */ |