2011-10-26 71 views
2

我在製作文件時遇到了麻煩,我想我已經獲得了大部分的正確性,但是我遇到了getMorseCode()方法的問題。我幾乎可以肯定它始於Java:字符串,字符,如果,錯誤

String morse = ""; 

然而,因爲字母是char和莫爾斯是一個字符串,它導致錯誤。否則,它符合,但只是返回一個空格,當我運行測試器時,我不知道該在引號中加什麼引號,任何人都可以給我一個提示嗎?

感謝,

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"); 

回答

2

編輯:誤讀的問題,String morse = Character.toString(letter);是你所需要的。 (假設你想用你當前的代碼)

在任何情況下,你應該只在炭,而不是進行一個switch語句,即

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

與您當前密碼的問題是,莫爾斯只是被設置爲「」,並且您正在對其進行測試的情況下,它總是評估錯誤。

+0

我刪除了我的答案,因爲我輸入的速度比我想象的要快。我注意到那封信是一個炭太晚:) – Dave

+0

哈哈,它發生在我們最好的:p。 – Zhanger

+0

謝謝,它的話 –

0

替換的代碼最後一位的主要方法

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

而且也與這部分,我想,當你使用單個字符,你沒有使用「一」,你用「一'而不是?那麼試試這個......我不是100%確定這所以它可能無法正常工作......

if (morse.equalsIgnoreCase('a')) 
0

你從來沒有真正檢查你的方法的信。
你想要做的是:String morse = ""+letter;現在你正在測試這封信。
Java將字符和大多數數字轉換爲字符串時,將它們添加到現有的字符串,這是一個漂亮和簡單的方法將數字和字符轉換爲字符串。

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值。這現在有道理嗎?