ArrayHelper

Tagged:

Je viens de donner une fonctionalité parfois pratique pour des tables de données, je colle ici tout mon ArrayHelper comme ça si ça dit a quelqu'un ...

Fonctions principales :

// fonction isIn
if (ArrayHelper.isIn("test", new String[] {"ici", "un", "test"})) {
  System.out.println("ok");
}
 
// fonction d'affichage d'une array en plusieurs colonnes avec padding des colonnes et tout ...
System.out.println(ArrayHelper.toString(new String[] {"Un", "Test", "Pour", 
	"Voir si ça", "Marche", "Comme", 
	"On", "Veut", "Et aussi si", "On peut mettre", "n'importe", 
	"quoi", "et", "surtout", "Que ça plante pas !"}, 6));

Le dernier produit le résultat suivant :

| Un | Test    | Pour                | Voir si ça     | Marche    | Comme |
| On | Veut    | Et aussi si         | On peut mettre | n'importe | quoi  |
| et | surtout | Que ça plante pas ! |                |           |       |
public class ArrayHelper {
 
	public static boolean isIn(Object what, Object[] inWhat) {
		for (int i = 0; i < inWhat.length; i++) {
			if (inWhat[i].getClass().equals(what.getClass())) {
				if (inWhat[i].equals(what)) {
					return true;
				}
			}
		}
		return false;
	}
	
	public static String toString(Object[] what, int nbColumns) {
		StringBuffer buf = new StringBuffer("");
		Collection[] array = new Collection[nbColumns];
		for (int i = 0; i < nbColumns; i++) {
			array[i] = new ArrayList();
		}
		
		int column = 0;
		for (int i = 0; i < what.length; i++) {
			array[column].add(what[i].toString());
			column = (column + 1) % nbColumns;
		}
		
		for (int i = 0; i < nbColumns; i++) {
			array[i] = padStrings(array[i], getMaxPad(array[i]) + 1);
		}
 
		for (int i = 0; i < array[0].size(); i++) {
			for (int j = 0; j < nbColumns; j++) {
				buf.append("| ");
				if (array[j].size() > i) {
					buf.append(((ArrayList)array[j]).get(i));
				} else {
					buf.append(StringHelper.padLeft("", ' ', ((String)((ArrayList)array[j]).get(0)).length()));
				}
			}
			buf.append("|\n");
		}
		
		return buf.toString();
	}
	
	public static void main(String[] args) {
		System.out.println(toString(new String[] {"Un", "Test", "Pour", "Voir si ça", "Marche", "Comme", 
				"On", "Veut", "Et aussi si", "On peut mettre", "n'importe", "quoi", "et", "surtout", "Que ça plante pas !"}, 6));
	}
	
	private static int getMaxPad(Collection list) {
		int pad = 0;
		for (Iterator it = list.iterator(); it.hasNext();) {
			String s = (String) it.next();
			if (s.length() > pad) {
				pad = s.length();
			}
		}
		return pad;
	}
	private static Collection padStrings(Collection list, int max) {
		Collection ret = new ArrayList();
		for (Iterator it = list.iterator(); it.hasNext();) {
			String s = (String) it.next();
			s = StringHelper.padRight(s, ' ', max);
			ret.add(s);
		}
		return ret;
	}
	
}