private static int guessNcols(ParserSetup setup, String[][] data) { int res = data[0].length; if (setup._header) return res; boolean samelen = true; for (String[] s : data) samelen &= (s.length == res); if (samelen) return res; // we don't have lines of same length, pick the most common length HashMap<Integer, Integer> lengths = new HashMap<Integer, Integer>(); for (String[] s : data) { if (!lengths.containsKey(s.length)) lengths.put(s.length, 1); else lengths.put(s.length, lengths.get(s.length) + 1); } int maxCnt = 0; for (Map.Entry<Integer, Integer> e : lengths.entrySet()) if (e.getValue() > maxCnt) { maxCnt = e.getValue(); res = e.getKey(); } return res; }