@Override public RuleMatch[] match(List<AnalyzedSentence> sentences) { List<RuleMatch> ruleMatches = new ArrayList<>(); int pos = 0; for (AnalyzedSentence sentence : sentences) { AnalyzedTokenReadings[] tokens = sentence.getTokens(); //note: we start from token 1 //token no. 0 is guaranteed to be SENT_START for (int i = 1; i < tokens.length; i++) { if(isFirstWhite(tokens[i])) { int nFirst = i; for (i++; i < tokens.length && isRemovableWhite(tokens[i]); i++); i--; if (i > nFirst) { String message = messages.getString("whitespace_repetition"); RuleMatch ruleMatch = new RuleMatch(this, sentence, pos + tokens[nFirst].getStartPos(), pos + tokens[i].getEndPos(), message); ruleMatch.setSuggestedReplacement(tokens[nFirst].getToken()); ruleMatches.add(ruleMatch); } } else if (tokens[i].isLinebreak()) { for (i++; i < tokens.length && isRemovableWhite(tokens[i]); i++); } } pos += sentence.getText().length(); } return toRuleMatchArray(ruleMatches); }
@Override public RuleMatch[] match(List<AnalyzedSentence> sentences) { List<RuleMatch> ruleMatches = new ArrayList<>(); int pos = 0; for (AnalyzedSentence sentence : sentences) { AnalyzedTokenReadings[] tokens = sentence.getTokens(); //note: we start from token 1 //token no. 0 is guaranteed to be SENT_START for (int i = 1; i < tokens.length; i++) { if(isFirstWhite(tokens[i])) { int nFirst = i; for (i++; i < tokens.length && isRemovableWhite(tokens[i]); i++); i--; if (i > nFirst) { String message = messages.getString("whitespace_repetition"); RuleMatch ruleMatch = new RuleMatch(this, sentence, pos + tokens[nFirst].getStartPos(), pos + tokens[i].getEndPos(), message); ruleMatch.setSuggestedReplacement(tokens[nFirst].getToken()); ruleMatches.add(ruleMatch); } } else if (tokens[i].isLinebreak()) { for (i++; i < tokens.length && isRemovableWhite(tokens[i]); i++); } } pos += sentence.getText().length(); } return toRuleMatchArray(ruleMatches); }