【发布时间】:2015-11-07 15:42:34
【问题描述】:
我希望这段代码输出以下内容,它有三个以逗号分隔的数组列表条目作为分隔符("slow,steady"),("blue, white,green")("whale, shark ");。它必须输出以下内容
slow blue whale
slow white whale
slow white shark
steady blue whale
steady white shark
and so forth.
我能够将每个单词分开并将它们放在三个单独的列表中。 list1 包含缓慢稳定 list2 包含蓝白色绿色和 list3 包含鲸鲨。但我无法连接它们。欢迎任何输入。
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
public class HelloWorld {
String input; //input String
StringBuffer output; //Holds the output
String delimiter = ","; //Delimiter (default comma (,))
String arrayOfWords[];
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
List<String> list3 = new ArrayList<String>();
int listCount;
/*
* Generates combinations by applying the
* concept of recursion
*/
public void generateCombinations(String input, String delimiter,int listCount)
{
output = new StringBuffer();
this.input = input;
this.delimiter = delimiter;
this.listCount = listCount;
String[] stockArr = new String[list1.size()];
String[] stockArr1 = new String[list2.size()];
String[] stockArr2 = new String[list2.size()];
if(listCount == 1) {
String items1[] = input.split(",");
for(int i=0;i< items1.length; i++){
list1.add(items1[i]);
}
}
else if(listCount == 2) {
String items2[] = input.split(",");
for(int i=0;i< items2.length; i++){
//System.out.println(items2[i]);
list2.add(items2[i]);
}
}
else {
String items3[] = input.split(",");
for(int i=0;i< items3.length; i++){
// System.out.println(items3[i]);
list3.add(items3[i]);
}
}
stockArr = list1.toArray(stockArr);
stockArr1 = list2.toArray(stockArr1);
stockArr2 = list3.toArray(stockArr2);
for(String s1 : stockArr){
System.out.print(s1);
}
for(String s2 : stockArr1){
System.out.print(s2);
}
for(String s3 : stockArr2){
System.out.print(s3);
}
for(int i=0;i<list1.size();i++){
String s1 = list1.get(i).toString();
for(int j=0;j<list2.size();j++){
String s2 = list2.get(j).toString();
System.out.println(s1+s2);
}
}
}
public static void main(String[] args) {
ArrayList <String> strings = new ArrayList <String>();
int i=1;
for(String string : strings){
new HelloWorld().generateCombinations(string , ",",i);
++i;
}
}
}
【问题讨论】:
-
那么,你想在最后创建一个巨大的字符串吗?
-
感谢您的回复。我要打印的是:慢蓝鲸——第 1 行慢白鲸——第 2 行,以此类推
-
有什么规律吗?
-
感谢Uma Kanth的回复。图案是你在慢蓝鲸慢白鲸慢白鲨稳定蓝鲸稳定白鲨等问题中编辑的。我无法在评论中指定换行符
-
@Shravya 我在不使用您的代码的情况下添加了我的解决方案。请试一试并告诉我。不确定是否要使用递归..
标签: java arrays string combinations