我的ASCII和摩尔斯数组的代码有问题。 只要我知道强制转换是正确的...该代码使用函数和强制转换以拆分每个“ 000000”并将数字转换为字母和单词。我不能完全确定问题出在哪里,但cmd会说:
Morse.java:73: error: incompatible types: String cannot be converted to int
return result;
^
Morse.java:80: error: incompatible types: String cannot be converted to int
return result;
^
2个错误有帮助吗?
public class Morse
{
public static String decode(String txt)
{
String[] words = txt.split("0000000");
String result = "";
for(int w=0; w<words.length; w++)
{
result += processWord(words[w]);
}
return result;
}
public static String processWord(String word)
{
String[] letter = word.split("000");
String result = "";
for(int l=0;l<letter.length;l++)
{
result += processChar(letter[l]);
}
return result;
}
public static int processChar(String letters)
{
String[] morseLetters = new String[26];
morseLetters[0] = "10111"; //A
morseLetters[1] = "111010101"; //B
morseLetters[2] = "11101011101"; //C
morseLetters[3] = "1110101"; //D
morseLetters[4] = "1"; //E
morseLetters[5] = "101011101"; //F
morseLetters[6] = "111011101";//G
morseLetters[7] = "1010101";//H
morseLetters[8] = "101"; //I
morseLetters[9] = "1011101110111";//J
morseLetters[10] = "111010111";// K
morseLetters[11] = "1011101010";// L
morseLetters[12] = "1110111"; //M
morseLetters[13] = "1110001";//N
morseLetters[14] = "11101110111"; //O
morseLetters[15] = "10111011101"; //P
morseLetters[16] = "1110111010111"; // Q
morseLetters[17] = "1011101"; // R
morseLetters[18] = "10101";//S
morseLetters[19] = "111"; //T
morseLetters[20] = "1010111";//U
morseLetters[21] = "101010111"; // V
morseLetters[22] = "101110111"; //W
morseLetters[23] = "11101010111"; // x
morseLetters[24] = "1110101110111"; // Y
morseLetters[25] = "11101110101";//Z
String[] morseNumbers = new String[10];
morseNumbers[0] ="10111011101110111";
morseNumbers[1] ="101011101110111";
morseNumbers[2] ="1010101110111";
morseNumbers[3] ="10101010111";
morseNumbers[4] ="101010101";
morseNumbers[5] ="11101010101";
morseNumbers[6] ="1110111010101";
morseNumbers[7] ="111011101110101";
morseNumbers[8] ="11101110111011101";
morseNumbers[9] ="1110111011101110111";
int index = find(letters, morseLetters);
if(index == -1) // not found Look for it in numbers
{
index = find(letters, morseNumbers);
String result = "";
result += (char)(index + 48);//convert to number
return result;
}
//did find it
else
{
String result = "";
result += (char)(index + 65);
return result;
}
}
public static int find(String needle, String[] haystack)
{
for(int h=0; h<haystack.length; h++)
{
if(haystack[h].equals(needle))
{
return h;
}
}
return -1; // not found!
}
public static void main(String[] args)
{
String encoded =
"10111010001010101110111000111010100010101011101110000000";
String decoded = decode(encoded);
System.out.println(decoded);
}
}
///My output:
//Morse.java:73: error: incompatible types: String cannot be converted to int
// return result;
// ^
//Morse.java:80: error: incompatible types: String cannot be converted to int
// return result;
// ^
//2 errors
答案 0 :(得分:0)
您的方法processChar
被声明为返回int
public static int processChar(String letters) {...}
,在第73和80行中,您尝试返回一个String。您应该更改方法的名称以返回String
对象,例如:
public static String processChar(String letters) {...}