ArrayHelper
Submitted by PiTiLeZarD on Thu, 01/25/2007 - 17:16
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; } }
