如何将字符串中所有可能的两个字符存储到java中的String数组中? 例如,如果我给字符串" abcd"。然后我想将所有可能的两个字符(aa,ab,ac,ad,ba,bb,bc,bd,ca,cb,cc,cd,da,db,dc,dd)存储到字符串数组中。 我怎么能这样做?
答案 0 :(得分:1)
执行此操作并避免重复的最简单方法是迭代字符串并使用Set
存储结果:
String input = "abcd";
HashSet<String> set = new HashSet<String>();
for (int i=0; i < input.length()-1; ++i) {
for (int j=0; j < input.length(); ++j) {
String value = input.charAt(i) + "" + input.charAt(j);
set.add(value); // duplicates will not be added
}
}
// convert the set to a String array
String[] array = set.toArray(new String[set.size()]);
答案 1 :(得分:1)
使用Java 8,你可以做到
public static void main(String... args) {
System.out.println(twoCharCombinations("abcd"));
}
public static String twoCharCombinations(String s) {
return IntStream.range(0, s.length()).boxed().flatMap(i ->
IntStream.range(0, s.length()).boxed().map(j ->
"" + s.charAt(i) + s.charAt(j))
).collect(Collectors.joining(","));
}
打印
aa,ab,ac,ad,ba,bb,bc,bd,ca,cb,cc,cd,da,db,dc,dd
您可以.collect(Collectors.toList())
创建一个String列表,而不是字符串[]。