2014-11-06 85 views
1
import java.util.Scanner; 

public class main 
{ 
    public static void main(String[] args) 
    { 
      Scanner keyboard = new Scanner(System.in); 
      String input, scramble; 

      System.out.println("Input message to be coded: "); 
      input = keyboard.nextLine(); 
      System.out.println("Input: " + input); 

      for (int i = 0; i < input.length(); i++) 
      { 
        scramble += scrambleMessage(input.charAt(i)); 
      } 

      System.out.println("Coded message is: " + scramble); 

    } 

public static char scrambleMessage(char c, int x) 
    { 
      int charc = c; 

      if (!Character.isLetter(c)) 
        return c; 

      charc = (charc * (charc - 1))/(charc + (charc - 1)) + 5; 

      return (char)charc; 
    } 
} 

。該程序的目的是獲取在main中輸入的字符串,並通過scrambleMessage()函數運行以更改字母。我運行它通過在字符上按字符運行字符串,使每個字符都是相應的數字,然後重新創建一個字符。不知道發生了什麼,給了我這個錯誤。方法不能適用於給定類型的錯誤在Java

回答

0

因爲你scrambleMessage(char c, int x)採取2 parameters.you應該通過一個char和int。既然你不使用的int參數刪除

public static char scrambleMessage(char c) 
    { 
      int charc = c; 

      if (!Character.isLetter(c)) 
        return c; 

      charc = (charc * (charc - 1))/(charc + (charc - 1)) + 5; 

      return (char)charc; 
    } 

也應將此行

String input, scramble =null; 

改變

String input, scramble = ""; 

因爲在使用它們之前應初始化局部變量第二,你應該避免空

+0

所以我修正了它並編譯了,但是現在不管我放入第一個字符的字符串是什麼總是「null」。它是如何計算的? – thepinkanator95 2014-11-06 02:45:45

+0

更改字符串輸入,爭奪= null;以字符串輸入,scramble =「」; – 2014-11-07 08:57:09

1

錯誤說你: The method scrambleMessage(char, int) in the type main is not applicable for the arguments (char), 你需要傳遞char和INT,你只是傳遞一個參數。 或編輯

public static char scrambleMessage(char c, int x) 

public static char scrambleMessage(char c) 

,我認爲你有另一個錯誤是這樣的:

The local variable scramble may not have been initialized 

則必須將此行更改:​​

String input, scramble ; 

String input, scramble = ""; 
相關問題