Convertisseur De Code Morse

Je l'ai déjà posté un sujet sur ce mais ont considérablement (et que le sujet a été mis en attente..donc je ne peux pas modifier) modifié mon code (j'ai essayé ce que l'un des utilisateurs a déclaré dans différentes variations, mais pas de haricots). J'ai essayé de courir juste toMorse, mais bien qu'il compile je n'ai pas de sortie et un message d'erreur de 'java.lang.ArrayIndexOutOfBoundsException(at projmorsejava:22 and 46)' je ne suis pas sûr de la façon de configurer toEnglish, à ce point, j'ai essayé d'utiliser le replaceAll indexOf et valueOf méthodes. J'ai aussi essayé d'utiliser plaintextString mais qui n'a pas fonctionné (j'ai peut-être mis en œuvre de manière incorrecte).
Voici mon nouveau code:

import java.util.Scanner;
public class ProjMorse
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] alpha = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "0", " " };
String[] dottie = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
"....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.",
"--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-",
"-.--", "--..", ".----", "..---", "...--", "....-", ".....",
"-....", "--...", "---..", "----.", "-----", "|" };
System.out
.println("Enter English to convert from English or Morse to convert from Morse:");
String ans = input.nextLine();
if (ans.equals("English")) {
System.out.println("Please enter the text you would like   to convert to Morse Code: ");
String english = input.nextLine();
char[] translates = (english.toLowerCase()).toCharArray();
System.out.println(toMorse(translates, dottie)); //calls on method toMorse
}
else if (ans.equals("Morse")) {
System.out
.println("Please enter the text you would like to convert to English (separate words with '|'):");
String code = input.nextLine();
String[] translates = (code.split("[|]", 0));
System.out.println(toEnglish(translates, alpha));//calls on method toEnglish
}
else
System.out.println("Invalid input, please try again.");
}
public static String toMorse(char [] translates, String [] dottie)
{            
String morse = "";
for (int j = 0; j < translates.length; j++)
{
char a = translates[j];
if(Character.isLetter(a))
{
morse = dottie[a + 'a'];
}
}
return morse;/*so I tried running only this(commented other stuff out) and it compiled but although it ran it didnt translate */
}
public static String toEnglish(String [] translates, String  [] alpha)
{
String s;
for (int n = 0; n < translates.length; n++)
{
String a = translates[n];
s = java.util.Arrays.asList(alpha).(Character.toChars(a + 'a')[0]);//I'm not sure what to do here..
}
return s;
}
}
  • Ce sont tous de très de base des erreurs de syntaxe, indiquant que vous n'êtes pas encore prêt à s'attaquer à quelque chose de cette complexité. Je vous recommande de commencer avec une base de Java tutoriel et obtenir tous les exemples et exercices de travail. Vous devez également apprendre à utiliser un IDE comme Eclipse ou NetBeans. Ils feront l'apprentissage de Java beaucoup plus facile. Vous avez beaucoup à apprendre, et, malheureusement, ce n'est pas un tutoriel site. Vous devriez aussi regarder les FAQ et Comment Demander les pages.
  • Je sais qu'ils sont.. j'ai lu tellement de choses et c'est en raison de quelques heures seulement.. j'ai travaillé pendant des jours à la longueur..Merci beaucoup!
  • Je suis désolé pour vous. Si c'est en raison de quelques heures, puis vous n'allez pas obtenir ce travail, et DONC le plus certainement ne sera pas vous aider à tricher. Demandez à votre professeur pour vous aider et/ou de sympathie. À cette date tardive c'est tout ce que vous pouvez faire.
  • J'ai formaté votre code un peu donc l'erreur de lignes peuvent désormais être pas la même chose. Mais maintenant, au moins tout le monde peut lire votre code plus facile.
  • Main.java:18: error: cannot find symbol System.out.println(toMorse(morse)); PAS due à d'autres erreurs. Lire le message d'erreur. Vous n'avez pas défini de morse. Le ^ sur la ligne ci-dessous l'erreur des points exactement là où est l'erreur.
  • Je n'essaie pas de tricher!! Je veux juste comprendre ce que je fais mal.. j'ai vraiment travaillé très dur sur cette question et ont tenté conacting mon instructeur de nombreuses fois avant de recourir à de SI je sais que je suis en train de faire une sorte de retour d'erreur, mais j'ai regardé à travers tous mes manuels et de ne pas savoir exactement ce qui ne va pas..
  • Qu'est-ce que morse dans System.out.println(toMorse(morse));? Qu'est-ce que s dans System.out.println(toEnglish(s));? Ne char[] ont valueOf méthode? Est-il string type en Java?
  • Oh oui j'ai changé la chaîne String dans mon programme.. j'ai oublié de modifier ici. s et morse sont les chaînes de caractères définies dans les méthodes toMorse/toEnglish
  • si vous définissez la variable à l'intérieur du bloc de code, comme celui de la méthode, il devient variable locale qui n'est pas accessible par d'autres méthodes.
  • Oui, je le sais, mais ne devrait-elle pas être d'accord si je retourne la variable?
  • En retournant la méthode retourne la valeur d'une variable, et non la variable elle-même.
  • Ohh je crois que je comprends...
  • Pour info: si une question est posée [en attente] alors que vous pouvez et devez modifier la question pour résoudre le problème. Si vous le faites, alors le gel peut être supprimé. Ne pas juste essayer de nouveau avec une nouvelle question.
  • Panko, j'ai essayé, mais ça n'a pas été réouvert...et il était de plus de 2 jours.. j'ai regardé à travers tout ce qu'ils affichés dans les motifs et fait de mon mieux pour réviser..

InformationsquelleAutor LongGone | 2014-01-03