62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
/**
* @author ZhengYesheng
*/
public class SentenceMaker
{
/**
* @param args
*/
public static void main(String[] args)
{
ArrayList<String> list1 = new ArrayList<>();
list1.add("我");
list1.add("你们");
list1.add("他");
ArrayList<String> list2 = new ArrayList<>();
list2.add("购买");
list2.add("租了");
list2.add("用掉");
list2.add("花了");
ArrayList<String> list3 = new ArrayList<>();
list3.add("100元");
list3.add("玫瑰花");
list3.add("宝箱");
list3.add("戒指");
ArrayList<ArrayList<String>> origin = new ArrayList<ArrayList<String>>();
origin.add(list1);
origin.add(list2);
origin.add(list3);
ArrayList<ArrayList<String>> result = make(origin);
for (int i = 0; i < result.size(); i++)
{
System.out.println(result.get(i));
}
}
public static ArrayList<ArrayList<String>> make(ArrayList<ArrayList<String>> origin)
{
ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
if (origin.size() == 1)
{
ArrayList<String> origin0 = origin.get(0);
for (int i = 0; i < origin0.size(); i++)
{
ArrayList<String> tmp = new ArrayList<String>();
tmp.add(origin0.get(i));
result.add(tmp);
}
}
else
{
ArrayList<String> origin0 = origin.remove(0);
ArrayList<ArrayList<String>> subResult = make(origin);
for (int i = 0; i < origin0.size(); i++)
{
String strOrigin = origin0.get(i);
for (int j = 0; j < subResult.size(); j++)
{
ArrayList<String> aSubResult = copyArrayList(subResult.get(j));
aSubResult.add(0, strOrigin);
result.add(aSubResult);
}
}
}
return result;
}
private static ArrayList<String> copyArrayList(ArrayList<String> origin)
{
ArrayList<String> result = new ArrayList<String>();
for (int i = 0; i < origin.size(); i++)
{
result.add(origin.get(i));
}
return result;
}
}
import java.util.ArrayList;
public class Test{
static void process(int index,String m,ArrayList<ArrayList<String>> list)
{
ArrayList<String>l=list.get(index);
int s=list.size()-index;
for(String e:l)
{
String tmp=m+e;
if(s==1)System.out.println(tmp);
else process(index+1,tmp, list);
}
}
public static void main(String[] args){
ArrayList<String> list1 = new ArrayList<>();
list1.add("我");
list1.add("他");
ArrayList<String> list2 = new ArrayList<>();
list2.add("购买");
list2.add("租了");
ArrayList<String> list3 = new ArrayList<>();
list3.add("100元");
list3.add("玫瑰花");
ArrayList<ArrayList<String>> list=new ArrayList<>();
list.add(list1);
list.add(list2);
list.add(list3);
process(0,"",list);
}
}
运行结果:
我购买100元
我购买玫瑰花
我租了100元
我租了玫瑰花
他购买100元
他购买玫瑰花
他租了100元
他租了玫瑰花
import java.util.ArrayList;
//用JAVA 1.7或者1.7以上版本.其他版本自行修改.
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
import static java.nio.file.StandardOpenOption.*;
import java.nio.channels.WritableByteChannel;
import java.io.IOException;
import java.nio.ByteBuffer;
public class Test{
@SuppressWarnings("unchecked")
public static void main(String[] args){
ArrayList<String> list1 = new ArrayList<>();
list1.add("我");
list1.add("你们");
list1.add("他");
ArrayList<String> list2 = new ArrayList<>();
list2.add("购买");
list2.add("租了");
list2.add("用掉");
list2.add("花了");
ArrayList<String> list3 = new ArrayList<>();
list3.add("100元");
list3.add("玫瑰花");
list3.add("宝箱");
list3.add("戒指");
process(list1,list2,list3);
}
@SuppressWarnings("unchecked")
private static void process(ArrayList<String> ... lists){
assert lists.length >= 1;
String[] result = new String[lists.length];
process(result,0,lists);
}
@SuppressWarnings("unchecked")
private static void process(String[] result,int i,ArrayList<String> ... lists){
assert lists.length >= 1;
assert result.length == lists.length;
if(i == result.length){
saveToFile(result);
return;
}
for(String str : lists[i]){
result[i] = str;
process(result,i + 1,lists);
}
}
private static void saveToFile(String[] result){
String content = "";
for(String str : result){
content += str;
}
content += System.lineSeparator();
try(WritableByteChannel channel = Files.newByteChannel(path,CREATE,APPEND);){
ByteBuffer buffer = ByteBuffer.wrap(content.getBytes());
channel.write(buffer);
}catch(IOException e){
e.printStackTrace();
return;
}
}
private static Path path = Paths.get(System.getProperty("user.dir")).resolve("to.txt");//保存到当前目录下的to.txt文件中.
}
import java.util.ArrayList;
public class Test{
public static void main(String[] args){
ArrayList<String> list1 = new ArrayList<>();
list1.add("我");
list1.add("你们");
list1.add("他");
ArrayList<String> list2 = new ArrayList<>();
list2.add("购买");
list2.add("租了");
list2.add("用掉");
list2.add("花了");
ArrayList<String> list3 = new ArrayList<>();
list3.add("100元");
list3.add("玫瑰花");
list3.add("宝箱");
list3.add("戒指");
process(list1,list2,list3);
System.out.println(count);
}
private static void process(ArrayList<String> ... lists){
assert lists.length >= 1;
String[] result = new String[lists.length];
process(result,0,lists);
}
private static void process(String[] result,int i,ArrayList<String> ... lists){
assert lists.length >= 1;
assert result.length == lists.length;
if(i == result.length){
count ++;
for(String str : result){
System.out.print(str);
}
System.out.println();
return;
}
for(String str : lists[i]){
result[i] = str;
process(result,i + 1,lists);
}
}
private static int count = 0;
}
import java.util.ArrayList;
public class Test{
public static void main(String[] args){
ArrayList<String> list1 = new ArrayList<>();
list1.add("我");
list1.add("你们");
list1.add("他");
ArrayList<String> list2 = new ArrayList<>();
list2.add("购买");
list2.add("租了");
list2.add("用掉");
list2.add("花了");
ArrayList<String> list3 = new ArrayList<>();
list3.add("100元");
list3.add("玫瑰花");
list3.add("宝箱");
list3.add("戒指");
process(list1,list2,list3);
}
private static void process(ArrayList<String> ... lists){
assert lists.length >= 1;
String[] result = new String[lists.length - 1];
process(result,0,lists);
}
private static void process(String[] result,int i,ArrayList<String> ... lists){
assert lists.length >= 1;
assert result.length == lists.length - 1;
if(i == lists.length - 1){
String total = "";
for(String str : result){
total += str;
}
for(String value : lists[i]){
System.out.println(total + value);
}
return;
}
for(int index = i ; index < lists.length ; index ++){
for(String value : lists[i]){
result[i] = value;
process(result,i+1,lists);
}
}
}
}
public static void main(String[] args) {
String[] s1 = { "我", "你们", "他" };
String[] s2 = { "购买", "租了", "用掉", "花了" };
String[] s3 = { "100元", "玫瑰花", "宝箱", "戒指" };
for (int i = 0; i < s1.length; i++) {
for (int j = 0; j < s2.length; j++) {
for (int k = 0; k < s3.length; k++) {
System.out.println(s1[i] + s2[j] + s3[k]);
}
}
}
}