Il est courant dans les cours de programmation d’avoir un exercice où l’on demande de permuter deux variables. Bien souvent, on utilise une variable intermédiaire. Mais il est tout à fait possible de s’en passer. Si cela présente peu d’intérêt niveau optimisation, en voici la démonstration en guise de challenge.
Utiliser un switch pour des cotes de test
Un étudiant a demandé s’il était possible d’utiliser un switch pour afficher une cote ou un message d’appréciation. A priori, le switch se limite à évaluer des valeurs seules et non des intervals. Mais c’est chose possible avec l’approche suivante.
Les inner class (question de certification OCJP)
Si vous avez contemplé passer la certification OCJP (anciennement SCJP) vous avez certainement rencontré des questions test qui vous ont fait réflêchir. Un exemple est le code ci-dessous dont on demande la sortie.
class MyClass
{
public static void main (String[] args)
{
String s = "whizlab";
System.out.println(s);
}
public class String
{
public String(String s)
{
System.out.println("simulator");
}
}
}What is the output?
A. whizlab simulator
B. whizlab
C. Compilation error
D. None of the above
Faire fonctionner Tess4J en déploiement
Tess4J est un wrapper JNA pour l’API de reconnaissance de caractères Tesseract.
Si celui-ci fonctionne comme prévu dans Eclipse ou un autre IDE, certains soucis apparaissent lorsqu’on essaye de l’utiliser dans un jar exécutable ou dans une application finale.
Voici comment y remédier.
Les développeurs engagés
Je ne sais pourquoi, il m’est venu l’idée de lancer une page Facebook pour regrouper les développeurs qui souhaiteraient participer à des bonnes causes. L’équivalent d’écrivain engagé dans la langue de Shakespeare ne fut pas évident à trouver mais finalement j’ai opté pour « Developers With A Cause ». Je vous invite à marquer votre soutien si vous êtes inscrits sur le le plus grand réseau social du monde.
Limitation du nombre d’instances d’une classe
Dans un groupe Java sur Facebook une personne a demandé comment s’y prendre pour limiter le nombre d’instances d’une classe donnée. On pourrait imaginer que cela serve dans des cas de figures où on a besoin d’un nombre limité de « jetons », par exemple dans un environnement client-serveur.
A titre d’exercice je me suis amusé à programmer une solution. Sans nécessairement être parfaite, elle démontre comment traduire cette contrainte.
Quand une variable n’est pas égale à elle-même
Est-il possible de faire en sorte que « pas égal » soit imprimé dans la console sans modifier la structure suivante ?
System.out.println("égal");
}
else
{
System.out.println("pas égal");
}
Extraire les données de tables HTML avec XPath
Récemment j’avais la tâche d’extraire des données à partir de pages sans doute encodées sous Excel et sauvegardées sous forme de tableaux HTML. Comme il y avait environ 800 fichiers à traiter une solution programmatique s’imposait.
Un Filefilter reprenant plusieurs extensions de fichier
Avec le JFileChooser de Swing il est possible d’ajouter des FileFilter pour filtrer la liste de fichiers affichés.
Cet article va décrire un FileFilter personalisé capable de filtrer selon plusieurs extensions de fichiers. Cela peut être utile si un format de fichier peut avoir plusieurs extensions ou si on souhaite regrouper plusieurs extensions sous un même nom (ex: images, sons, archives ).
Créer des instances à travers un enum
Le plus souvent un enum sert à reprendre une liste de constantes que l’on peut notamment utiliser de manière sémantique lors du passage de paramètres (ex: Color.white). Mais en Java il existe d’autres possibilités dont une manière pratique pour créer des instances que je vais décrire dans cet article.