Décodage morse-français
Résolu
Et-laine
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis en train de réaliser un programme pour décoder une phrase en morse, vers le français, le problème, c'est que mon programme fonctionne, sauf qu'il ne prend pas en compte le dernier caractère, si celui-ci n'est pas suivi par un espace ... et j'ai beau chercher de tous les côtés, ça ne fonctionne pas... Si vous voyez le problème...
Merci d'avance!
Je suis en train de réaliser un programme pour décoder une phrase en morse, vers le français, le problème, c'est que mon programme fonctionne, sauf qu'il ne prend pas en compte le dernier caractère, si celui-ci n'est pas suivi par un espace ... et j'ai beau chercher de tous les côtés, ça ne fonctionne pas... Si vous voyez le problème...
Merci d'avance!
public static void morse2fr (String phrase){ String phraseInterm = ""; String phraseTransforme = ""; for (int i = 0; i<phrase.length(); i++){ if((phrase.charAt(i)!= ' ')&&(i != phrase.length()-1 )){ phraseInterm += phrase.charAt(i);} else { switch (phraseInterm) { case ".-" : phraseTransforme += "A" ; break ; case "-..." : phraseTransforme += "B"; break ; case "-.-." : phraseTransforme += "C" ; break ; case "-.." : phraseTransforme += "D"; break ; case "." : phraseTransforme += "E"; break ; case "..-." : phraseTransforme += "F" ; break ; case "--." : phraseTransforme += "G" ; break ; case "...." : phraseTransforme += "H" ; break ; case ".." : phraseTransforme += "I"; break ; case ".---" : phraseTransforme += "J"; break ; case "-.-" : phraseTransforme += "K"; break ; case ".-.." : phraseTransforme += "L" ; break ; case "--" : phraseTransforme += "M"; break ; case "-." : phraseTransforme += "N"; break ; case "---" : phraseTransforme += "O" ; break ; case ".--." : phraseTransforme += "P"; break ; case "--.-" : phraseTransforme += "Q"; break ; case ".-." : phraseTransforme += "R"; break ; case "..." : phraseTransforme +="S"; break ; case "-" : phraseTransforme += "T" ; break ; case "..-" : phraseTransforme += "U" ; break ; case "...-" : phraseTransforme += "V"; break ; case ".--" : phraseTransforme += "W"; break ; case "-..-" : phraseTransforme +="X"; break ; case "-.--" : phraseTransforme += "Y"; break ; case "--.." : phraseTransforme += "Z"; break ; case ".----" : phraseTransforme += "1" ; break ; case "..---" : phraseTransforme += "2"; break ; case "...--" : phraseTransforme += "3"; break ; case "....-" : phraseTransforme += "4"; break ; case "....." : phraseTransforme += "5"; break ; case "-...." : phraseTransforme += "6"; break ; case "--..." : phraseTransforme += "7"; break ; case "---.." : phraseTransforme += "8"; break ; case "----." : phraseTransforme += "9"; break ; case "-----" : phraseTransforme += "0"; break ; case "/" : phraseTransforme += " " ; break; } phraseInterm = ""; } } System.out.println(phraseTransforme); }
A voir également:
- Décodage morse-français
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Télécharger adobe reader 9.1 français gratuit - Télécharger - PDF
- Fixwin 11 en français - Télécharger - Divers Utilitaires
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
1 réponse
Solution simple : tu rajoutes un espace final à phrase avant de commencer le traitement.
phrase+=" ";Ou alors, tu modifies les conditions pour ajouter le dernier caractère ET faire le switch :
for (int i = 0; i<phrase.length(); i++) { if (phrase.charAt(i)!=' ' || i==phrase.length()-1) { phraseInterm += phrase.charAt(i); if (i!=phrase.length()-1) continue; // on ne fait pas le switch } switch (phraseInterm) { ...