Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008
-
11 sept. 2008 à 14:45
Utilisateur anonyme -
12 sept. 2008 à 19:53
Bonjour,
voici le code sur lequel je travail :
b = b.replace(":", "");
if (b.equals("0000")) {
b = "R";
}
else{
if (b.equals("000")) {
b = "R";
}
else{
b = "J" + b;
}
}
En fait, je récupère une chaine de caractère qui est composée de 4 chiffres et je veut que lorsque ma chaine de caractère commence par un 0 il soit supprimé.
Donc si je récupère "0145" je veux affiché dans un jTextfield "145".
Est ce que quelqu'un pourrait me conseiller s'il vous plaît.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 11 sept. 2008 à 23:02
Salut:
A mon avis, il faut délèguer ce type de test au composant et non au programme, comme ça tu n'as pas à se soucier.
public static class NumericDocument extends PlainDocument {
@Override
public void insertString(int offs, String str, AttributeSet attrs) throws BadLocationException {
char c = str.charAt(0);
if (!Character.isDigit(c)) {
return;
}
if (offs 0 && c '0') {
return;
}
super.insertString(offs, str, attrs);
}
}
// ...
JTextField numericField = new JTextField(25);
numericField.setDocument(new NumericDocument());
String substring(int1 indice initial, int2 indice final);
int1 et int2 indiquent le deplacement dans xxx et peuvent prendre les valeurs 0 à longueur de xxx , soit 4 dans notre cas et sachant que l'extraction termine à indice final - 1.
pour extraire 145 nous aurons int1 1 et int 2 4.
Mais nous ne sommes pas obligés de citer int2 si nous voulons tout de 1 jusqu'à la fin .
String xxx2 = xxx.substring(1,4);
ou
String xxx2 = xxx.substring(1);
Évidemment, c'est classe, d'autant plus que ma réponse n'est pas complète car la première chose à faire serait de tester si xxx = "0000" et si oui forcer xxx2 à "" et sortir ; si non voir si xxx commece par "0" et si oui extraire dans xxx2, comme indiqué ci-dessus et voir si à son tour xxx2 ne commence pas par "0" etc...
Je reste à la disposition de beberto56 s'il de souhaite.
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008 12 sept. 2008 à 10:07
Re,
Tout d'abord merci pour votre aide. Dan j'ai utilisé ta méthode cela fonctionne parfaitement mais j'ai un petit soucis je n'arrive pas à tester si la première lettre de a est 0 ou non j'ai essayé :
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008 12 sept. 2008 à 14:23
Re c'est bon j'ai trouvé
je voulais vous demander une autre petite subtilité.
En fait dans mon programme j'ai un accès à base de données ou je récupère dans un champs de texte des taux horaire avec 6 chiffre après la virgule or je voudrais en afficher seulement 2 et je ne trouve pas le moyen de le faire.
Exemple je récupère 10.010000 et je voudrais affiché 10.01
Si vous pouvez me renseigner je vous en serais reconnaissant.