问题描述
我有一个使用构造函数的 java 莫尔斯电码赋值。我让代码正常工作,但很难调用构造函数。
- 我的原始代码。
import java.util.Scanner;
public class morseTest {
public static void main(String[] args) {
char alphabet[] = { '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 morse[] = { ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".---.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",".----","..---","...--","....-",".....","-....","--...","---..","----.","-----","--..--",".-.-.-","..--.." };
Scanner sc = new Scanner(system.in);
String input = sc.nextLine().toLowerCase();
char[] chars = input.tochararray();
String str = "";
for (int i = 0; i < chars.length; i++) {
for (int index = 0; index < alphabet.length; index++) {
if (alphabet[index] == chars[i]) {
str = str + morse[index] + " ";
}
}
}
System.out.println(str);
sc.close();
}
}
import java.util.Scanner;
import java.util.*;
public class Demo {
public static void main(String[] args) {
// PLACE CODE HERE
Scanner sc = new Scanner(system.in);
String input = sc.nextLine().toLowerCase();
MorseCode message = new MorseCode(input);
System.out.println(message.stringToMorse());
}
}
import java.util.Scanner;
public class MorseCode {
private static char[] alphabet;
private static String[] morse;
private static String input;
public MorseCode() {
// PLACE CODE HERE
char alphabet[] = { 'a','?' };
String morse[] = { ".-","..--.." };
}
MorseCode(String s) {
input = s;
}
public static String stringToMorse(String s) {
// PLACE CODE HERE
char[] chars = input.tochararray();
String str = "";
for (int i = 0; i < chars.length; i++) {
for (int index = 0; index < alphabet.length; index++) {
if (alphabet[index] == chars[i]) {
str = str + morse[index] + " ";
}
}
}
return s;
}
Demo.java:13: 错误:MorseCode 类中的方法 stringToMorse 不能应用于给定类型; System.out.println(message.stringToMorse()); ^ 要求:字符串 发现:没有参数 原因:实际和形式参数列表的长度不同 1 个错误
解决方法
public static String stringToMorse(String s)
这个方法需要一个参数。
在调用 message.stringToMorse()
时,没有参数传递给它。
此外,在代码中 stringToMorse 方法被声明为静态方法,因此可以通过 className 调用它。请参考以下代码更改。
public class Demo {
public static void main(String[] args) {
// PLACE CODE HERE
Scanner sc = new Scanner(System.in);
String input = sc.nextLine().toLowerCase();
System.out.println(MorseCode.stringToMorse(input));
}
}
MorseCode 类的代码在 stringToMorse 方法中有错误。它正在返回没有声明的变量 s。
import java.util.Scanner;
public class MorseCode {
private static char[] alphabet ={ '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',','.','?' };
private static String[] morse= { ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".---.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",".----","..---","...--","....-",".....","-....","--...","---..","----.","-----","--..--",".-.-.-","..--.." };
public static String stringToMorse(String input) {
// PLACE CODE HERE
char[] chars = input.toCharArray();
String str = "";
for (int i = 0; i < chars.length; i++) {
for (int index = 0; index < alphabet.length; index++) {
if (alphabet[index] == chars[i]) {
str = str + morse[index] + " ";
}
}
}
return str;
}