in src/main/java/com/univocity/parsers/csv/CsvFormatDetector.java [299:324]
private static char getChar(Map<Character, Integer> map, Map<Character, Integer> totals, char defaultChar, boolean min) {
int val = min ? Integer.MAX_VALUE : Integer.MIN_VALUE;
for (Entry<Character, Integer> e : map.entrySet()) {
int sum = e.getValue();
if ((min && sum <= val) || (!min && sum >= val)) {
char newChar = e.getKey();
if (val == sum) {
Integer currentTotal = totals.get(defaultChar);
Integer newTotal = totals.get(newChar);
if (currentTotal != null && newTotal != null) {
if ((min && newTotal > currentTotal) || (!min && newTotal > currentTotal)) {
defaultChar = newChar;
}
} else if (isSymbol(newChar)) {
defaultChar = newChar;
}
} else {
val = sum;
defaultChar = newChar;
}
}
}
return defaultChar;
}