java - java中使用for循环的两个名称组合
问题描述
我想要的是要求用户输入三 (3) 个名字,然后显示以下内容:所有可能的两个名字组合。
例如,我将输入 Mike Tyler Bryle
迈克·泰勒迈克·布莱尔·泰勒迈克·泰勒
·布莱尔·布莱尔迈克·
布莱尔·泰勒
这是我的代码
import java.io.*;
import java.util.*;
public class Javacomprog{
public static void main(String[] args) {
//GET THE NAME FIRST
String name_1, name_2, name_3;
String prints =" ";
//STORING THE 3 NAMES
String[] a_names = new String[3];
//COMBINATION NAME
String[] c_names = new String[3];
Scanner sc = new Scanner(System.in);
//STORE IN ARRAY THE USER INPUT NAMES
System.out.println("Enter three first names:");
for(int i = 0; i < a_names.length; i++){
a_names[i] = sc.nextLine();
}
// STORE THE NAME COMBINATION
for(int j = 0; j < a_names.length; j++){
int a = 0;
//CHECK IF IT IS A REPEATED NAME USING EQUAL IGNORECASE
if(a_names[a].equalsIgnoreCase(a_names[j]) == true){
a++;
}
c_names[j] = a_names[a]+ " " + a_names[j];
}
//PRINT NAME COMBINATION
for(int l = 0; l < c_names.length; l++){
System.out.println(c_names[l] + " ");
}
}
}
你能解释一下我如何使用 for 循环进行名称组合吗?谢谢。
解决方案
您可以根据要查找的组合数量使用嵌套的 for 循环进行组合。在这种情况下,您需要对,因此两个循环(外部和内部)就足够了。
String[] names = {"Mike", "Tyler", "Bryle"};
List<String> combinations = new ArrayList<>();
for(int i = 0; i < names.length - 1; i++) {
for(int j = i + 1; j < names.length; j++) {
combinations.add(names[i] + " " + names[j]);
combinations.add(names[j] + " " + names[i]);
}
}
for(String name : combinations)
System.out.println(name);
推荐阅读
- java - 无法运行jar可执行文件
- python - 如果掩码中存在颜色,则从 cv2.inRange() 返回布尔值
- vue.js - 如何跟踪在 v-select 中选择的项目?
- google-cloud-platform - GCP API - machineImages.insert 返回 503
- firebase - 如何向管理员发送推送通知给用户 - Flutter
- python - Django:过滤当前登录用户的ListView(manytomanyfield)
- python - 我有一个我在 python 3 中编写的用于加密的代码,我设法进行了加密。但我必须做到不区分大小写,我不能
- javascript - 选择其他元素时无法隐藏 div
- python - 在 Python 中创建一个简单的二进制搜索函数
- google-cloud-platform - 谷歌云平台vpn创建