Java命令提示符错误
我正在做一个翻译,把英语转换成摩尔斯电码,反之亦然。我编写了代码,并且能够编译它,但是在输入我想要转换的句子后,命令提示符dash只会转到下一行,没有任何结果。我的代码有问题吗 这是我的代码: (不是最有效的,因为我对java还是新手,所以任何提示都将不胜感激)Java命令提示符错误,java,command,prompt,language-translation,Java,Command,Prompt,Language Translation,我正在做一个翻译,把英语转换成摩尔斯电码,反之亦然。我编写了代码,并且能够编译它,但是在输入我想要转换的句子后,命令提示符dash只会转到下一行,没有任何结果。我的代码有问题吗 这是我的代码: (不是最有效的,因为我对java还是新手,所以任何提示都将不胜感激) import javax.swing.JOptionPane; 公共类翻译器{ 公共静态void main(字符串[]args){ 字符串s1=“莫尔斯”; //决定是摩尔斯电码还是英语 String decise=JOptionPan
import javax.swing.JOptionPane;
公共类翻译器{
公共静态void main(字符串[]args){
字符串s1=“莫尔斯”;
//决定是摩尔斯电码还是英语
String decise=JOptionPane.showInputDialog(“输入'English'表示摩尔斯电码到英语的翻译,输入'Morse'表示英语到摩尔斯电码的翻译,注意大写)。”;
//输入字符串
String phrasep=JOptionPane.showInputDialog(“输入要翻译的单词”);
如果(决定等于(s1))
toMorse(phrasep);
其他的
英语(短语);
}
//翻译成莫尔斯
公共静态void-toMorse(字符串短语1)
{
字符[]英语=新字符[36];
char[]number={1};
对于(inti=65,j=0;i<91;i++,j++)
{
英语[j]=(char)i;
}
英语[26]=1;
英语[27]=2;
英语[28]=3;
英语[29]=4;
英语[30]=5;
英语[31]=6;
英语[32]=7;
英语[33]=8;
英语[34]=9;
英语[35]=0;
字符串[]摩尔斯=新字符串[36];
莫尔斯[0]=“-”;
莫尔斯[1]=“-…”;
莫尔斯[2]=“-。-”;
莫尔斯[3]=“-…”;
莫尔斯[4]=“;
莫尔斯[5]=“.-”;
莫尔斯[6]=“-”;
莫尔斯[7]=“…”;
莫尔斯[8]=”;
莫尔斯[9]=“----”;
莫尔斯[10]=“-.-”;
莫尔斯[11]=“-…”;
莫尔斯[12]=“-”;
莫尔斯[13]=“-”;
莫尔斯[14]=“--”;
莫尔斯[15]=“-”;
莫尔斯[16]=“--.-”;
莫尔斯[17]=“-”;
莫尔斯[18]=“…”;
莫尔斯[19]=“-”;
莫尔斯[20]=“.-”;
莫尔斯[21]=“…-”;
莫尔斯[22]=“--”;
莫尔斯[23]=“-…-”;
莫尔斯[24]=“-.-”;
莫尔斯[25]=“--…”;
莫尔斯[26]=“----”;
莫尔斯[27]=”。--“;
莫尔斯[28]=“…”;
莫尔斯[29]=“…-”;
莫尔斯[30]=“…”;
莫尔斯[31]=“-…”;
莫尔斯[32]=“-…”;
莫尔斯[33]=“--…”;
莫尔斯[34]=“----”;
莫尔斯[35]=“----”;
字符串短语=短语1.替换(“//s+”,“|”);
String[]translation=新字符串[phrase1.length()];
对于(int j=0,t=0,n=1;j
您的代码中有一个无限循环
看看变量J。在for/next循环中设置变量,然后在while循环中测试变量。每次完成while循环时,它都会测试j是否你不需要做两次这样的测试。删除while,让for循环处理它。作为一种良好的形式,我没有看到
char[]number={1}代码>在任何地方使用时,应将其删除<代码>字符[]英语=新字符[36]代码>和字符串[]摩尔斯=新字符串[36]不应在每次调用toMorse()
时创建和初始化code>,而应将它们声明为private static final…
,并在static{…}
初始化程序块中初始化。不能在评论中真正表现出这一点,但我们非常感谢!然而,在我输入“finally”之后,它发出了[L.java.lang.String;@1f8d244。你知道为什么吗?
import javax.swing.JOptionPane;
public class translator {
public static void main ( String [] args ) {
String s1 = "Morse";
//Decide whether Morse code or English
String decide = JOptionPane.showInputDialog("Enter 'English' for Morse to English code translation and 'Morse' for English to Morse code translation.Pay attention to Caps.");
//Enter String
String phrasep = JOptionPane.showInputDialog("Enter the words you wish to translate.");
if ( decide.equals( s1 ))
toMorse( phrasep );
else
toEnglish( phrasep );
}
// Translate to Morse
public static void toMorse( String phrase1 )
{
char[] english = new char[36];
char[] number = { 1 };
for ( int i = 65, j = 0; i < 91; i++, j++)
{
english[j] = (char)i;
}
english[26] = 1;
english[27] = 2;
english[28] = 3;
english[29] = 4;
english[30] = 5;
english[31] = 6;
english[32] = 7;
english[33] = 8;
english[34] = 9;
english[35] = 0;
String[] morse = new String[36];
morse[0] = " .- ";
morse[1] = " -.. ";
morse[2] = " -.-. ";
morse[3] = " -.. ";
morse[4] = " . ";
morse[5] = " ..-. ";
morse[6] = " --. ";
morse[7] = " .... ";
morse[8] = " .. ";
morse[9] = " .--- ";
morse[10] = " -.- ";
morse[11] = " .-.. ";
morse[12] = " -- ";
morse[13] = " -." ;
morse[14] = " --- ";
morse[15] = " .--. ";
morse[16] = " --.- ";
morse[17] = " .-. ";
morse[18] = " ... ";
morse[19] = " - ";
morse[20] = " ..- ";
morse[21] = " ...- ";
morse[22] = " .-- ";
morse[23] = " -..- ";
morse[24] = " -.-- ";
morse[25] = " --.. ";
morse[26] = " .---- ";
morse[27] = " ..--- ";
morse[28] = " ...-- ";
morse[29] = " ....- ";
morse[30] = " ..... ";
morse[31] = " -.... ";
morse[32] = " --... ";
morse[33] = " ---.. ";
morse[34] = " ----. ";
morse[35] = " ----- ";
String phrase = phrase1.replace( "//s+", "|");
String[] translation = new String[phrase1.length()];
for ( int j = 0, t = 0, n = 1; j < phrase.length(); j++)
{
while ( j < phrase.length() )
{
if ( phrase.substring(t, n ).equals ( english[j] ) )
{
translation[t] = morse[j];
t++;
n++;
}
}
}
System.out.println( translation );
}
public static void toEnglish( String phrase)
{
System.out.println( phrase );
}
}