随机句子生成器返回数字而不是句子

时间:2016-09-15 18:14:54

标签: java arrays string random

我想创建一个随机句子生成器。我做了所有事情,但是当我进行测试时,不是返回一个句子而是返回一个数字。

示例: 如果它应该返回“A beautiful car explodes。”,则返回0100.

我很确定我错过了什么但是在这一点上我无法理解。我相信我的测试写错了,但我不确定。任何帮助,将不胜感激。谢谢!

public class set2{

 public static void main(String[] args) {

    String[] article = new String[4];
    String[] adj = new String[2];
    String[] noun = new String[2];
    String[] verb = new String[3];

    article[0] = "A";
    article[1] = "The";
    article[2] = "One";
    article[3] = "That";

    adj[0] = "hideous";
    adj[1] = "beautiful";

    noun[0] = "car";
    noun[1] = "woman";

    verb[0] = "explodes";
    verb[1] = "is dying";
    verb[2] = "is moving";

    // Test for randomSentence
    System.out.println(randomSentence(article, adj, noun, verb));

  public static String randomSentence(String[] article, String[] adj, String[] noun, String[] verb) {

    Random rand = new Random();

    int articledx = rand.nextInt(article.length);
    int adjdx = rand.nextInt(adj.length);
    int noundx = rand.nextInt(noun.length);
    int verbdx = rand.nextInt(verb.length);

    String sentence = articledx + "" + adjdx + "" + noundx + "" + verbdx + ".";

    return sentence;

2 个答案:

答案 0 :(得分:3)

您正在返回数字,而不是数字处的数组元素。要在某个索引处返回数组元素,您将使用语法

arrayElementAtIndex = arrayName[arrayIndex];

此外,您需要在字符串中包含空格以创建空格。 将您的第二行更改为

String sentence = article[articledx] + " " + adj[adjdx] + " " + noun[noundx] + " " + verb[verbdx] + ".";

只要您的索引正确,它就能正常工作。

答案 1 :(得分:0)

问题是你是根据你生成的随机int构建结果而不是相应数组中指向的元素......

修改String sentence

像:

String sentence = article[articledx[ + "" + adj[adjdx]+ "" + noun[noundx] + "" + verb[verbdx] + ".";

public static String randomSentence(String[] article, String[] adj, String[] noun, String[] verb) {
    Random rand = new Random();
    int articledx = rand.nextInt(article.length);
    int adjdx = rand.nextInt(adj.length);
    int noundx = rand.nextInt(noun.length);
    int verbdx = rand.nextInt(verb.length);

    return  article[articledx[ + "" + adj[adjdx]+ "" + noun[noundx] + "" + verb[verbdx] + ".";