【发布时间】:2015-12-10 10:40:17
【问题描述】:
我是 Java 编程的初学者,正在学习 Ex。 Deitel&Deitel的16.5(随机句子)问题要求用从给定的冠词、名词、动词和介词数组中随机选择的单词组成句子,形成20个句子,其中句子必须按顺序组成:冠词、名词、动词、prep、冠词和名词。 它要求在单词之间放置空格,我不知道该怎么做。此外,我以非常错误的方式连接字符串,因此非常感谢您的帮助和指导。
import java.util.*;
public class Makeit{
private static String[] article ={"the","a","one","some","any"};
private static String[] noun={" boy"," girl"," dog"," town"," car"};
private static String[] verb={" drove"," jmped"," ran"," walked"," skipped"};
private static String[] preposition={" to"," from"," over"," under"," on"};
public static void main(String args[]){
//order to make a sent: a,n,v,p,a,n
System.out.println("the sentences picked at random are:");
//loop to generate 20 sentences
for(int i=0;i<=19;i++){
System.out.println(makeSentence());
}
}
public static String makeSentence(){
Random rand = new Random();
int[] index = new int[6];
String sent = new String();
for(int i=0;i<6;i++){
index[i]= rand.nextInt(5);
}
sent = sent.concat(article[index[0]].concat(noun[index[1]].concat(verb[index[2]].concat(preposition[index[3]].concat(article[index[4]].concat(noun[index[5]]))))));
return sent;
}
}
【问题讨论】:
-
此时他们是否已经谈论过
StringBuilder? -
@user1803551 在这里不需要使用显式的字符串生成器。使用
+的多个连接被编译为在内部使用 StringBuilder,但显式使用它只是语法混乱。 -
是的,他们做到了,但我对这门课还不太自信,所以没有使用它......谢谢
-
@AndyTurner 这是一个教学练习。如果他们了解了
StringBuilder,那么这是一个使用它的好地方。如果句子较长(比如说不是句子,而是一长串数字)并且您需要超过 20 个句子,那么这将是必要的。