Un petit code qui ne fonctionne pas

jsand094 - 29 sept. 2012 à 19:59
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 1 oct. 2012 à 09:24
Bonjour,
J'ai écris un petit code (en java) qui permet de calculer le degree d'insaturation d'une molécule. Seulement je ne sais pas convertir un caractere en entier pour faire le calcul.
Rmq : pour une molecule donnee, DI = (2*nC+2 + nN - nH - nALO)/2;

package di;

/**
 *
 */
   import java.util.Scanner;
public class DI {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        String fr;
        int nC, nH, nO, nN, nALO, DI;
        
     System.out.println("entrer la formule brute :");   
     fr = sc.next().toUpperCase();
     
       for(int i=0; i<fr.length(); i++){
            if(fr.charAt(i)=='C'){
                nC = Integer.parseInt(fr.charAt(i+1));
            }else{
                nC = 0;
            }
            if(fr.charAt(i)=='H'){
                nH = Integer.parseInt(fr.charAt(i+1));
            }else{
                nH = 0;
            }
            if(fr.charAt(i)=='O'){
                nO = Integer.parseInt(fr.charAt(i+1));
            }else{
                nO = 0;
            }
            if(fr.charAt(i)=='N'){
                nN = Integer.parseInt(fr.charAt(i+1));
            }else{nN = 0;
            }
            if((fr.charAt(i)=='C')&&(fr.charAt(i+1=='l')   ||(fr.charAt(i)=='B')&&(fr.charAt(i+1)=='r')){
                nALO = Integer.parseInt(fr.charAt(i+2));
            }else{nALO = 0;
            }   
        }
             DI = (2*nC+2 + nN - nH - nALO)/2;
        System.out.println("Le degree d'insaturation de la   molecule est : (2*"+nC+"+2 + "+nN+" - "+(-nH)+" - "+(-nALO)+") /2 = "+DI);
    }
}

Merci d'avance pour vos reponses Jsande

1 réponse

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
1 oct. 2012 à 09:24
Salut,

C'est bien Integer.parseInt, mais si fr.charAt(i)=='C' alors fr.charAt(i+1)==' ' et tu as un problème de parsing.
0
Rejoignez-nous