private static String[] splitBySpaces(String expr)
    {
        LinkedList<String> words = new LinkedList<String>();
        
        int start = -1; // -1 si pas dans un mot
        
        for (int cursor = 0; cursor < expr.length(); cursor++) {
            if (start != -1 && Character.isWhitespace(expr.charAt(cursor))) {
                // Fin d'un mot
                words.addLast(expr.substring(start, cursor));
                start = -1;
            } else if (
                start == -1 && !Character.isWhitespace(expr.charAt(cursor))
            ) {
                // Début d'un mots
                start = cursor;
            }
        }
        
        if (start != -1) // Dernier mot
            words.addLast(expr.substring(start, expr.length()));
        
        return words.toArray(new String[0]);
    }