2014-11-06 84 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 = ""; 
相关问题