Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
838 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Chaine de caractere java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chaine de caractere java

n°2048449
sirius50
Posté le 12-01-2011 à 16:17:18  profilanswer
 

Bonjour actuellement en études, on nous demande de créer un programme qui permet de faire d'une chaine de caractère un entier. J'ai réussi mais lorsque je veut mettre cette étape de conversion dans une fonction "public static String......" la variable nommée "t" qui est un int ne peut être reconnue.  
Je sollicite donc votre aide pour régler ce petit problème.
merci d'avance
 
http://img689.imageshack.us/img689/5312/86674093.jpg
 
public class ex2{
 public static void main (String args [])
 {
  String t=("-5553" );
  int resultat=1;
  System.out.println(t.length());  
  System.out.println(resultat);  
  System.out.println(resultat);  
  int o=resultat+9;
  System.out.println(o);  
 }
// calcul pour verifier  
  public static String ve(String t, int resultat){
   String i=("-" ), j=("+" ),k=("0" ), l=("1" ), m=("2" ), n=("3" ), p=("4" );  
   String q=("5" ), r=("6" ), s=("7" ), v=("8" ), u=("9" );  
   String e = new String(t.charAt(0)+"" );
   if(e.equals(i) || e.equals(j) || e.equals(k) || e.equals(l) || e.equals(m) || e.equals(n) || .equals(p)||e.equals(q)||e.equals(r)||e.equals(s)||e.equals(v)||e.equals(u))
    {
    resultat=Integer.parseInt(t);
    }
   else
   {
    if(e!=i){
     resultat=0;
    }
   }
   return t;
  }
 
}

mood
Publicité
Posté le 12-01-2011 à 16:17:18  profilanswer
 

n°2048461
esox_ch
Posté le 12-01-2011 à 16:33:59  profilanswer
 

- Relis une fois ton code, y a des bouts qui servent à rien / veulent rien dire (genre les 3/4 de ton main font des trucs zarb)
- Pourquoi cette signature étrange pour ta fonction de vérification? Pourquoi statique, pourquoi avoir "resultat" comme paramètre, pourquoi retourner un String?
- Utilise une Regexp pour décider si le résultat est 0 ou pas (dans ton cas, si tu écris 23truc34, tu ne forceras pas le résultat à 0).
 
Les autres questions viendront après que tu auras mouliné un peu sur ton exo


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2048480
sirius50
Posté le 12-01-2011 à 16:59:14  profilanswer
 

esox_ch a écrit :

- Relis une fois ton code, y a des bouts qui servent à rien / veulent rien dire (genre les 3/4 de ton main font des trucs zarb)
- Pourquoi cette signature étrange pour ta fonction de vérification? Pourquoi statique, pourquoi avoir "resultat" comme paramètre, pourquoi retourner un String?
- Utilise une Regexp pour décider si le résultat est 0 ou pas (dans ton cas, si tu écris 23truc34, tu ne forceras pas le résultat à 0).
 
Les autres questions viendront après que tu auras mouliné un peu sur ton exo


 
Bonjour, merci pour la réponse.
-dans ma fonction main, j ai juste initialisé une chaine de caractère avec l'affichage du nombre de caractères (c'était optionnel plus pour moi afin que j'essaye de mieux comprendre les chaines de caractères). Sinon j'ai juste afficher la variable résultat pour la comparer avec la variable o et voir si l'addition c'était bien effectuée en prenant les valeurs de la chaine de caractère.
-pour la fonction string ve : j 'ai choisi string a cause d'un exemple dans un exercice de mon cours, je l'ai pris parce que je ne savais pas très bien quoi mettre si il fallait mettre int ou string sachant que j'aillais renvoyer a une donnée string.
résultat parce que je voudrais que la valeur présente dans la chaine de caractère soit renvoyée dans la variable résultat de la fonction principale. c'est juste un nom que j'ai donné.
-pour le 0 je veut juste que lorsque "e" est différent de "i", résultat prenne la valeur 0.
 
merci d'avance pour la réponse.

n°2048519
esox_ch
Posté le 12-01-2011 à 18:37:57  profilanswer
 

- C'est toi qui voit, reste que ton programme prend l'eau de tous les côtés - Mauvaise réponse. Demande toi ce que tu veux : Tu veux une commande qui te retourne l'entier représentant un string
=> public static Integer ve(String monString)  
Dis-toi aussi que le mot "static" là n'est pas anodin ... faut éviter de tomber dans le piège de tout foutre static dans tous les sens.
- Ce n'est pas ce qui est demandé dans ton énoncé : Il te dit "Si une lettre autre que .... est présente dans le string", Donc "123truc45" => 0, alors que dans ton programme ce n'est pas le cas => Utilise les expressions régulières


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2048532
sirius50
Posté le 12-01-2011 à 19:40:57  profilanswer
 

ben je veut bien transformer tout le code pour qu'il soit bon, mais le problème c'est que je suis un débutant. Pour les public static, on nous a montrer que ça. On nous a expliqué très peu de choses, les chaines de caractères on a maximum 3 pages, donc autrement dit rien du tout.  
J'ai fait ce code avec le peu de connaissances a mon actif.
si vous pouviez m'expliquer les problèmes avec plus de détails afin que je comprenne, je vous en serai gré.
merci d'avance.

n°2048616
esox_ch
Posté le 13-01-2011 à 10:30:36  profilanswer
 

D'accord, tu as eu des cours de m****, très (pas) bien.
Maintenant t'as 2 solutions : Essayer de bidouiller avec les connaissances qu'on vous a balancées sans trop savoir ce que tu fais (comme dans ton script plus haut)
 
ou
 
Aller dans le topic du débutant Java (tout en haut sur la liste des topics) et lire un peu les premiers posts, et ensuite chercher à te documenter par toi même.. Surtout que dans mes 2 derniers posts je t'ai dit pratiquement tout ce que tu dois faire pour avoir un code qui marche :/


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2048681
esox_ch
Posté le 13-01-2011 à 13:45:34  profilanswer
 

D'ailleurs, question à côté pour les éventuels experts. Si vous deviez faire ça dans un vrai programme vous feriez comment? Créer une classe fille de String qui défini la méthode qui va bien? Créer une classe Validator avec toutes les combinaisons ( String -> Integer, String -> Float, ...) ?
 
Parce que en Ruby moi j'injecterais ça directement dans String, mais en Java je sais pas ce qui est plus standard :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2048683
kadreg
profil: Utilisateur
Posté le 13-01-2011 à 13:49:10  profilanswer
 

esox_ch a écrit :

Créer une classe fille de String qui défini la méthode qui va bien?


 
ca tu oublie : string est finale :D


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2048688
esox_ch
Posté le 13-01-2011 à 14:00:38  profilanswer
 

shit j'avais oublié ... Quelle drôle d'idée d'ailleurs :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2048703
esox_ch
Posté le 13-01-2011 à 14:50:33  profilanswer
 

Bon, j'ai eu 5 minutes à tuer et je t'ai donc écrit un truc qui marche.
Maintenant, je n'ai exprès pas mis de commentaires dans le code de manière à ce que tu doives toi-même comprendre qui fait quoi. En plus, si vous avez eu si peu de cours que ça, si tu le rends tel quel à ton prof il va t'allumer la gueule, donc t'es condamné à comprendre :D

 
Code :
  1. import java.io.*;
  2.  
  3. public class ex2{
  4.     public static void main(String args[]){
  5.         boolean cont = true;
  6.         String test;
  7.         
  8.         while (cont) {
  9.             System.out.print("Enter the string to validate: " );
  10.             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  11.             
  12.             try {
  13.                 test = br.readLine();
  14.                 if(test.equals("exit" ))
  15.                     cont = false;
  16.                 else
  17.                     System.out.println(validate(test));
  18.             }
  19.             catch (IOException e) {
  20.                 System.out.println("Oops" );
  21.                 System.exit(1);
  22.             }
  23.         }
  24.         System.out.println("Exiting" );
  25.     }
  26.  
  27.  
  28.     public static Integer validate(String toConvert){
  29.         if(toConvert.matches("^-?[0-9]*$" ))
  30.             return Integer.parseInt(toConvert);
  31.         else if (toConvert.matches("^\\+[0-9]*$" ))
  32.             return Integer.parseInt(toConvert.substring(1,toConvert.length()));
  33.         else
  34.             return 0;
  35.     }
  36. }
 

Edit: Simplifié la 1ère regexp


Message édité par esox_ch le 13-01-2011 à 14:53:53

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 13-01-2011 à 14:50:33  profilanswer
 

n°2048707
pataluc
Posté le 13-01-2011 à 14:56:45  profilanswer
 

euh, c'est moi ou l'exercice demande justement à recoder parseInt, et pas à l'utiliser? (utilisation de charAt et tout)

n°2048708
esox_ch
Posté le 13-01-2011 à 15:00:12  profilanswer
 

Je viens de relire ... en effet vu qu'il parle de charAt ça doit être comme tu le dis.. Bon bein 5 min foutues à la poubelle comme on dit :lol:
 
À part ça ... j'ai pas l'impression que leur faire recoder parseInt soit beaucoup plus compliqué que ce que j'ai fait là .. Parce que c'est juste une moulinette, alors que là au moins ils auraient du utiliser les regexp :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2048712
pataluc
Posté le 13-01-2011 à 15:05:28  profilanswer
 

esox_ch a écrit :

À part ça ... j'ai pas l'impression que leur faire recoder parseInt soit beaucoup plus compliqué que ce que j'ai fait là .. Parce que c'est juste une moulinette, alors que là au moins ils auraient du utiliser les regexp :o


[:eneytihi:4]
indeed.


Message édité par pataluc le 13-01-2011 à 15:06:16
n°2049158
sirius50
Posté le 14-01-2011 à 17:14:03  profilanswer
 

Bonjour, je vous remercie pour le temps que vous m'avez accordé et pour vos réponse.  
J'ai réussi a régler mon problème avec un coup de main d'un de nos prof.
merci a tous

n°2049159
esox_ch
Posté le 14-01-2011 à 17:14:47  profilanswer
 

Merci de poster la solution pour les suivants


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2049161
sirius50
Posté le 14-01-2011 à 17:21:12  profilanswer
 

public class ex2{
 public static void main (String args [])
 {
 int resultat=0,puissance=1, chiffre;
 String chaine=("-48" );
 int position=chaine.length()-1;
 char c;
 while(position>=0){      
 c=chaine.charAt(position);
      if(c>'0' && c<'9'){
       chiffre=c-'0';
       resultat=resultat+chiffre*puissance;
       }
      else{
       if(c=='-'){
       resultat=resultat*-1;
       }
       else{
       resultat=0;}
      }
       
      puissance=puissance*10;
      position=position-1;    
   }
   
 System.out.println(resultat);  
 }
 
}

n°2049166
esox_ch
Posté le 14-01-2011 à 17:40:12  profilanswer
 

et bein ton prof il doit pas écrire du Java tous les jours :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2049167
sirius50
Posté le 14-01-2011 à 17:44:41  profilanswer
 

bof notre prof est un peu inutile enfin l'important c'est que sa marche. Parce que je devais le rendre aujourd'hui comme sa maintenant j'ai le temps de lire les tutos etc... de façons a progresser et après le refaire avec des connaissance plus approfondis.

n°2049171
esox_ch
Posté le 14-01-2011 à 18:13:51  profilanswer
 

Bein essaie de comprendre la version que t'ai sortie moi, et "améliore" là en n'utilisant par parseInt mais uniquement charAt. Comme ça on verra si tu as vraiment compris :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Chaine de caractere java

 

Sujets relatifs
[VBA Access] parcourir chaine de caractères[RESOLUS]JAVA Modification d'un champ avec une liste déroulante
Changer le design de l'appli en JAVASupprimer des mots dans une chaine de mots clés
[Résolu] Convertir regexp Perl->JavaPlugin pour une application en Java
[C] afficher un caractère grec[java] Afficher une BufferedImage dans un Jframe ?
Pattern Java | Probleme ecriture dans fichier texte.taille max d'une chaine de caractère en java?
Plus de sujets relatifs à : Chaine de caractere java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR