getTailEquality static method
Returns the equals tail part of l
elements.
Implementation
static String getTailEquality(List<String> l,
{Pattern? delimiter,
int? minLength,
bool Function(String s)? validator}) {
if (l.length <= 1) return '';
var min = l.map((e) => e.length).min;
if (minLength != null && min > minLength) min = minLength;
var longest = '';
String? longestWithDelimiter;
for (var sz = 1; sz < min; ++sz) {
var s = l[0];
var tail = s.substring(s.length - sz);
var matches = true;
for (var i = 1; i < l.length; ++i) {
var e = l[i];
if (!e.endsWith(tail)) {
matches = false;
break;
}
}
if (matches && (validator == null || validator(tail))) {
longest = tail;
if (delimiter != null && tail.startsWith(delimiter)) {
longestWithDelimiter = tail;
}
}
}
return longestWithDelimiter ?? longest;
}