Bonsoir
j'ai envie de fixer la taille d'un string en 5 caractère.
est ce que c'est possible avec la classe String
merci d'avance
Bonsoir
j'ai envie de fixer la taille d'un string en 5 caractère.
est ce que c'est possible avec la classe String
merci d'avance
Qu'entend tu par fixer ?
Tu veux dire initialiser ?
Ou tu veux dire extraires les 5 premiers caractères?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2String S="12345";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String S="123456789"; S=S.substring(0,5);
merci pour la réponse
ni l'un ni l'autre, mais ce que je veux est de ne pouvoir saisir que
5 caractère ni plus ni moins
Bonjour,
La classe String ne permet pas de saisie donc tu regardes au mauvais endroit met avis.
La classe String est juste une classe contenant une chaîne de caractère et étant immutable (une instance ne pouvant pas être modifiée) elle est de facto limitée à la taille de la chaîne qu'on a mis dedans.
Pour limiter une saisie de caractère à 5, il faut se tourner vers des composants graphique comme un JTextField, JFormattedTextField etc...
Bulbo
je ne vais pas faire une interface graphique rien que pour limiter la saisie
à 5 caractère !!!
La question ici est : "comment est-ce que tu le rempli, ton objet String ?"
C'est à ce moyen qu'il faut demander "pas plus ni moins que 5 caractères s'il vous plaît".
Ta remarque laisse a penser que tu veux fixer la taille, mais en rentrant toi-même les valeurs en durs, ce qui n'a strictement aucun sens.
Qu'entends tu par limiter la saisie ?
Dans le code ? A l’exécution du programme ?
Qu'est ce qu'une saisie pour toi ?
Si c'est dans le code et que tu veux qu'une String passée en argument n'ai pas plus de 5 caractères, la classe String ne t'aidera pas, il faut la spécialiser dans ce cas, même si je ne vois pas bien à quoi ça pourrait servir comparé à un test au bon endroit sur la taille de la String.
dans la console eclipse
je demande à l'user de saisir une valeur en dur, une fois 5 caractères saisi, il ne peut plus rien saisir,
et cette variable je l'exploite un peu plus loin pour concater une autre variable
Pas faisable. Java ne gère pas assez la console pour pouvoir faire ça.
Tant que l'utilisateur n'a pas appuyé sur Entrée il peut taper tout ce qui lui chante.
Autrement dit c'est une fois qu'il l'a fait, qu'il faut vérifier si oui ou non ça dépasse 5 caractère, et si oui lui dire qu'il a pas le droit et recommencer.
Ok
merci pour ton explication, je vais essayer de faire autrement
Dans n'importe quel langage, si tu demande la saisie d'une chaine de caractère, l'utilisateur pourra toujours entrée ce qu'il veut.
C'est seulement une fois la saisie validée par l'utilisateur que tu va pouvoir vérifier si oui ou non il y a 5 caractères ou pas.
Certains outils de validation sont disponibles pour vérifier dynamiquement la saisie via javascript (je pense à Bean Validation pour les formulaires sur un site par exemple). Mais comme tu travailles en mode console, tu es obligé de gérer cette restriction après que l'utilisateur ait tapé sur "entrée", et de lui demander de recommencer si la chaine n'est pas valide.
Je ne pense pas que tu puisses faire "autrement". Ou alors travailler avec une interface graphique et implémenter des listeners sur un champs texte qui évalueront dynamiquement que la saisie n'excède pas 5 characteres.
on mode swing je sais que je peux controler le textField
mais comme ce n'est pas le but de mon TP qui ne veut pas l'utilisation des interface graphique mais que le mode console,
mais je pensais que ça existe quelque en java pour bloquer la saisie,
bref je vais controler le nombre de carctères saisi et je valide dans le cas ou c'est égale à 5 ou je redmande une saisie dans le cas contraire.
Permets de lire les 5 premiers caractères de l'entrée standard. Malheureusement, comme le précisent les autres posts, la lecture se fera une fois la touche "Enter" appuyée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Console con; if ((con = System.console()) != null) { char[] c = new char[5]; con.reader().read(c); System.out.print(Arrays.toString(c)); }
Rien n'empêchera jamais l'utilisateur de taper sur des touches du clavier, ça c'est sûr.
Mais assez souvent, il est parfaitement possible de lui afficher un message d'erreur s'il dépasse, et de ne juste pas afficher ni tenir compte de ce qu'il a tapé et qui dépasse.
Il se trouve que Java ne gère pas assez la console pour contrôler cela. Mais :
- ça ne concerne que la console. Il peut très bien le faire en interface graphique.
- beaucoup d'autres langages le peuvent (et en réalité ce n'est pas impossible en Java si on ajoute une bibliothèque native adaptée à l'OS. Mais c'est atrocement compliqué et pas le genre de trucs adapté aux débutants.)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager