Java:String,Char,If,Error

时间:2011-10-26 01:06:59

标签: java

我在编写文件时遇到问题,我认为我已经将其中的大部分内容更正确了,但我遇到了getMorseCode()方法的问题。

,我几乎是肯定的
String morse = "";

但是,由于字母是字符,而莫尔斯是字符串,因此会导致错误。否则它符合但只是在我运行测试仪时返回一个空格我不知道在引号中放什么,有人可以给我一个提示吗?

谢谢,

public class MorseCode
{
    private char letter;

    public MorseCode(char let)
    {
    letter = let;

    }

    public char getLetter()
    {
        return letter;

    }

    public String getMorseCode()
    {
        String morse = "";
            if (morse.equalsIgnoreCase("a"))
                morse = ".-";







        return morse;
    }

}

import java.util.Scanner;

/**
 * A class to test the MorseCode class
 */
public class MorseCodeTester
{
    /**
     * Tests methods of the MorseCode class
     * @param args not used
     */
    public static void main( String args[] )
    {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a character: ");
        char morseChar = input.nextLine().charAt(0);
        MorseCode one = new MorseCode(morseChar);
        System.out.println(one.getLetter() + " is " + one.getMorseCode() + " in morse!\n");

4 个答案:

答案 0 :(得分:2)

编辑:误读了这个问题,String morse = Character.toString(letter);就是你需要的。 (假设您要使用当前代码)

在任何情况下,你都应该在char上进行switch语句,即

String morse = "";
switch(letter) {
            case 'a' :
            morse = ".-";
            break;
} //and so on

您当前代码的问题是莫尔斯只是被设置为“”而您正在测试针对它的案例,其中它总是会评估为假。

答案 1 :(得分:0)

替换main方法中的最后一位代码

System.out.print("Enter a character: ");
char morseChar = morse.charAt(0); // <-----
MorseCode one = new MorseCode(morseChar);

而且对于这一部分,我认为当你使用单个字符时,你没有使用“a”,你用'a'代替?试试这个...我不是百分之百确定这个,所以它可能不起作用......

  if (morse.equalsIgnoreCase('a'))

答案 2 :(得分:0)

你从来没有真正检查过你方法中的字母 你想要做的是:String morse = ""+letter;现在你正在测试这封信 将chars和大多数数字添加到字符串中时,将它们添加到现有字符串中,将数字和字符转换为字符串是一种非常简单的方法。

答案 3 :(得分:0)

你的问题是morse = "";当你运行测试用例时,这总是不会返回任何内容。

String morse = "";
switch (letter)
    {
        case 48 : morse = "- - - - -"; break;
        case 49 : morse = ". - - - -"; break;
        case 50 : morse = ". . - - -"; break;
        case 51 : morse = ". . . - -"; break;
        case 52 : morse = ". . . . -"; break;
        case 53 : morse = ". . . . ."; break;
        case 54 : morse = "- . . . ."; break;
        case 55 : morse = "- - . . ."; break;
        case 56 : morse = "- - - . ."; break;
        case 57 : morse = "- - - - ."; break;
        case 65 : morse = ". -"; break;
        case 66 : morse = "- . . ."; break;
        case 67 : morse =  "- . - ."; break;
        case 68 : morse = "- . ."; break;
        case 69 : morse = "."; break;
        case 70 : morse = ". . - ."; break;
        case 71 : morse = "- - ."; break;
        case 72 : morse = ". . . ."; break;
        case 73 : morse = ". ."; break;
        case 74 : morse = ". - - -"; break;
        case 75 : morse = "- . -"; break;
        case 76 : morse = ". - . ."; break;
        case 77 : morse = "- -"; break;
        case 78 : morse = "- ."; break;
        case 79 : morse = "- - -"; break;
        case 80 : morse = ". - - ."; break;
        case 81 : morse = ". - - ."; break;
        case 82 : morse = "- - . -"; break;
        case 83 : morse = ". - ."; break;
        case 84 : morse = ". . ."; break;
        case 85 : morse = "-"; break;
        case 86 : morse = ". . -"; break;
        case 87 : morse = ". . . -"; break;
        case 88 : morse = ". - -"; break;
        case 89 : morse = "- . . -"; break;
        case 90 : morse = "- . - -"; break;
        case 91 : morse = "- - . ."; break;
    }
    return morse;   

这涵盖了所有字母的ASCII值。这现在有意义吗?