Функция Decipherer - PullRequest
       9

Функция Decipherer

0 голосов
/ 02 мая 2020

Я новичок на Java, и в программировании тоже поэтому учусь :) Мне нужна твоя помощь для упражнения. Мне нужно создать функцию decipherer с некоторыми изменениями в моем аргументе.

import java.util.StringBuffer;

public class Decipherer{

    String arg ="aopi?sedohtém@#?sedhtmg+p9l!";

    int nbrChar = arg.length()/2;

    String arg2 = arg.substring(5, nbrChar-1);

    String arg3 = arg2.replace("@#?", " ");

    String arg4 = new StringBuilder(arg3).reverse().toString();

    return arg4;

}

public static void main(String[] args) {

    Decipherer mesage1 = new Decipherer("0@sn9sirppa@#?ia'jgtvryko1");
    Decipherer message3 = new Decipherer("q8e?wsellecif@#?sel@#?setuotpazdsy0*b9+mw@x1vj");
    Decipherer message4 = new Decipherer("aopi?sedohtém@#?sedhtmg+p9l!");

}

-

Исключение в потоке "main" java .lang.Error: Unresolved compilation проблемы: конструктор Decipherer (String) не определен конструктор Decipherer (String) не определен Конструктор Decipherer (String) не определен Синтаксическая ошибка, вставьте "}" для завершения ClassBody

    at Decipherer.main(Decipherer.java:24)

Я не знаю не понимаю, почему это спросить другого "}". Может кто-нибудь объяснить мне, пожалуйста?

1 Ответ

0 голосов
/ 02 мая 2020

Основной метод должен быть внутри класса. Вы можете поместить это, например, в Decipherer. Кроме того, выполняемые вами операции должны быть помещены в метод, чтобы иметь возможность вернуть что-либо. И вам нужен конструктор, принимающий String, например,

public class Decipherer {

  private final String input;

  // constructor accepting String
  public Decipherer(String input) {
    this.input = input;
  }

  public String decipher() {

    int nbrChar = input.length() / 2;

    String arg2 = input.substring(5, nbrChar - 1);

    String arg3 = arg2.replace("@#?", " ");

    return new StringBuilder(arg3).reverse().toString();
  }

  // main method inside class
  public static void main(String[] args) {
    Decipherer decipherer1 = new Decipherer("0@sn9sirppa@#?ia'jgtvryko1");
    String message1 = decipherer1.decipher();
    Decipherer decipherer2 = new Decipherer("q8e?wsellecif@#?sel@#?setuotpazdsy0*b9+mw@x1vj");
    Decipherer decipherer3 = new Decipherer("aopi?sedohtém@#?sedhtmg+p9l!");
  }
}

. При выполнении new Decipherer("0@sn9sirppa@#?ia'jgtvryko1"); создается объект типа Decipherer с полем input. Затем вы можете вызвать метод decipher() для этого объекта.

В качестве альтернативы вы также можете go без конструктора и предоставить для расшифровки метод stati c, например

public static String decipher(String input) {
    int nbrChar = input.length() / 2;
    String arg2 = input.substring(5, nbrChar - 1);
    String arg3 = arg2.replace("@#?", " ");
    return new StringBuilder(arg3).reverse().toString();
  }

, который вы можете вызвать в вашем основном методе как final String message = Decipherer.decipher("0@sn9sirppa@#?ia'jgtvryko1");.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...