java - 字符串不能转换为 int 数组和 ASCII
问题描述
我的 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
解决方案
你的方法processChar
被声明为返回int
public static int processChar(String letters) {...}
在第 73 行和第 80 行中,您试图返回一个字符串。您应该更改方法的特征以返回String
对象,例如:
public static String processChar(String letters) {...}
推荐阅读
- flutter - 如何使容器的宽度与其高度匹配
- python - 如何过滤日期范围内两个数据框之间的数据?
- javascript - 将 OR 条件添加到过滤器不会返回任何结果
- heroku - 在 Heroku 发布期间删除数据库列而不引发异常
- r - R:使用 addResourcePath 渲染本地传单图块
- python - 如何仅从 pandas datareader 获取工作日数据?
- git - ssh 密钥 github 添加仍然询问用户/密码
- c# - 如何在不显式调用派生的情况下创建基于派生类的 ctor 参数的对象
- c++ - C++“系统(命令)”在 NetBeans / Windows 上不起作用
- python - 使用 QPolygonF 绘图时如何在 QGraphicsPolygonItem 中添加文本?