Зацикливание функции get со случайной строкой - PullRequest
0 голосов
/ 27 апреля 2020
{
    Sentence sentence = new Sentence();
    for (int j = 0; j < 20; j++)
        System.out.printf("%s%n", sentence.getSentence());
}

Эй, друзья, я застрял. Я создал класс, который генерирует строку, которая рандомизирует каждое слово из массива. По какой-то причине, когда я создаю тест и создаю l oop, он просто l oop генерирует то же самое случайное предложение. Мой профессор попросил нас использовать для l oop для генерации каждого нового предложения. Как заставить l oop каждый раз вызывать только что рандомизированное предложение, а не повторять одно и то же 20 раз. Функция случайного получения работает, так как каждый раз, когда я запускаю ее, она будет использовать новое предложение.

Вот класс предложений, который я тестировал, и кажется, что он работает нормально сам по себе или при вызове тестом просто один раз.

public class Sentence {
        Word article = new Word();
        Word noun = new Word();
        Word verb = new Word();
        Word preposition = new Word();

        StringBuilder buffer1 = new StringBuilder(article.getArticle());
        String capital = Character.toString(buffer1.charAt(0)).toUpperCase();
        String buffer2 = capital + buffer1.substring(1,buffer1.length());
        StringBuilder sentence = new StringBuilder().append(buffer2).append(" ").append(noun.getNoun()).append(" ").append(verb.getVerb()).append(" ").append(preposition.getPreposition()).append(" ").append(article.getArticle()).append(" ").append(noun.getNoun()).append(".");

        public void setSentence (StringBuilder sentence)
        {
            this.sentence = sentence;
        }
        public StringBuilder getSentence()
        {
            return sentence;
        }

}

1 Ответ

0 голосов
/ 27 апреля 2020

Ну, вам нужно сбросить код, потому что он не работает так, как вам хотелось бы, и, кроме того, он не очень функционален.

Итак, я написал вам этот фрагмент кода, в котором я создал конструктор полезно автоматически создавать «предложение» каждый раз, когда вы создаете объект Sentence. После того, как это будет сделано, после будет автоматический c, просто создайте объект Sentence, как я сделал в основной функции, и вызовите метод getSentence(). При этом вы берете «предложение» конкретного объекта, который вы создали.

КОД

public static void main(String[] args) throws IOException {
        for (int j = 0; j < 20; j++)
            System.out.printf("%s%n", new Sentence().getSentence());
}
public class Sentence {
    Word article = new Word();
    Word noun = new Word();
    Word verb = new Word();
    Word preposition = new Word();

    StringBuilder buffer1 = new StringBuilder(article.getArticle());
    String capital = Character.toString(buffer1.charAt(0)).toUpperCase();
    String buffer2 = capital + buffer1.substring(1, buffer1.length());
    StringBuilder sentence;

    public Sentence() {
        sentence = new StringBuilder().append(buffer2).append(" ").append(noun.getNoun()).append(" ").append(verb.getVerb()).append(" ").append(preposition.getPreposition()).append(" ").append(article.getArticle()).append(" ").append(noun.getNoun()).append(".");
    }

    public void setSentence(StringBuilder sentence) {
        this.sentence = sentence;
    }

    public StringBuilder getSentence() {
        return sentence;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...