2013-11-26 4 views
0
public class Key { 

    public Encode() { 
     StringBuffer passWord = new StringBuffer("bubbles"); 
     System.out.println("Original plain text:" + passWord); 

     for (int i = 0; i < passWord.length(); i++) { 
      int temp = 0; 
      temp=(int)passWord.charAt(i); 
      temp= temp* 9; 
      EncodedText = passWord.setCharAt(i , (char)temp); 
      return EncodedText; 
     } 

     //return EncodedText; 
    } 

} 

Просто пишу небольшую программу для кодирования (и декодирования) небольшой кусочек текста, но всякий раз, когда я бегу это то же самое сообщение об ошибке появляетсяВернуться сообщение об ошибке типа

«Ошибка: недопустимый объявление метода, тип возвращаемого значения требуется public Encode() {" ^

+0

, если вы не хотите, чтобы вернуться сделать тип возврата 'void' или курс' возврата EncodedText, 'то будет ошибка. –

+1

Если это метод, вам необходимо объявить его с соответствующим типом возврата. – Andrew

+0

Пожалуйста, не используйте StringBuffer, вы можете использовать StringBuilder. Умножение BTW на 9, скорее всего, будет управлять текстом, чем его кодирование. –

ответ

1

Ваш метод не имеет типа возврата. Он нуждается в этом, чтобы он знал, какой тип данных он возвращает.

public <type goes here> Encode() { 

Этот

EncodedText = passWord.setCharAt(i , (char)temp); 

Не имеет смысла. EncodedText - это класс, ему нужен экземпляр перед его назначением. Если возможно быть

EncodedText variableName = passWord.setCharAt(i , (char)temp); 

Но, вероятно, больше, как (я не знаю, не видя, что класс)

EncodedText variableName = new EncodedText(passWord.setCharAt(i , (char)temp)); 

И это

return EncodedText; 

также не имеет смысла, это пытается вернуть класс, возможно, вы хотели вернуть экземпляр класса

return variableName; 

в этом случае, в первой ошибки, вы, вероятно, имел в виду

public EncodedText Encode() { 

Кроме того, есть несколько других ошибок я не могу правильно поставить диагноз, не видя EncodedText класса. Ошибки, подобные возврату в цикле, который, по-видимому, создает объект EncodedText и отсутствие создания указанного объекта.

0

У вас есть несколько ошибок здесь.

  1. Ваш метод не имеет типа возврата.
  2. EncodedText не имеет типа.
  3. Вы не хотите, чтобы ваш return в цикле for, он делает цикл бесполезным, поскольку он вернется на первой итерации.
  4. setCharAt() имеет тип void как тип возврата, вы не можете назначить его переменной.
0

Вы должны поставить тип возврата (например, String, Int, двойной и т.д.), вероятно, StringBuffer в этом случае, между public и Encode(). Попробуйте сделать public StringBuffer Encode() {...}

0

Также вы не следуете правильному соглашению об именовании Java. Он должен быть таким:

public returnType methodName(dataType parameter1, dataType parameter2){ 
} 

например.

public int add(int a, int b){ 
    return a+b; 
} 

для обозначения стандартов конвенции, относятся: http://java.about.com/od/javasyntax/a/nameconventions.htm

Смежные вопросы