Cette section regroupe des astuces de programmation ou corrige des erreurs fréquemment rencontrées.
Les codes des caractères de '0'
à '9'
se suivent, de
sorte que les deux trucs suivants s’appliquent.
Pour savoir si un caractère c est un chiffre (arabe) :
Il existe aussi une méthode
Character.isDigit(char c)
qui tient compte de tous les chiffres possibles (en arabe
c’est-à-dire indiens, etc.).
Pour récupérer la valeur d’un chiffre :
Ici encore il y a des méthodes statiques qui donnent les valeurs de chiffres dans la classe Character.
Java possède un opérateur ternaire (à trois arguments)
l’expression conditionnelle
ec ? et : ef.
L’expression ec est de type boolean
, tandis que le
types de et et ef sont identiques. L’expression
conditionnelle vaut et si ec vaut true
, et
ef si ec vaut false
.
De sorte que l’on peut afficher un booléen ainsi :
Les opérateurs
||
et &&
sont respectivement
la disjonction (ou logique) et la conjonction (et logique),
ils sont de la variété dite séquentielle (gauche-droite)
ou parfois paresseuse :
si évaluer la première condition suffit pour déterminer le résultat,
alors la seconde condition n’est pas évaluée.
Plus précisément, si dans e
1
|| e
2
(resp. e
1
&& e
2
)
e
1
vaut true
(resp. false
) , alors
e
2
n’est pas évaluée, et la disjonction
(resp. conjonction) vaut true
(resp. false).
C’est un idiome de profiter de ce comportement pour
écrire des conditions concises.
Par exemple, pour savoir si la liste xs
contient au moins deux
éléments, on peut écrire
Cette expression n’échoue jamais, cas si xs
vaut null
alors l’accès xs.next
n’est pas tenté.
On remarque que les connecteurs &&
et ||
peuvent
s’exprimer à l’aide d’un seul opérateur : l’opérateur ternaire
e
1
? e
2
: e
3
.
La conjonction e
1
&& e
2
s’exprime comme
e
1
? e
2
: false
et la disjonction
e
1
|| e
2
comme e
1
? true : e
2