我想创建一个随机句子生成器。我做了所有事情,但是当我进行测试时,不是返回一个句子而是返回一个数字。
示例: 如果它应该返回“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;
答案 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] + ".";