java中使用for循环的两个名称组合

java中使用for循环的两个名称组合,java,Java,我想要的是要求用户输入三(3)个名字,然后显示以下内容: 所有可能的两个名称组合例如,我将输入Mike Tyler Bryle 迈克·泰勒迈克·布莱尔泰勒·迈克泰勒·布莱尔布莱尔·迈克布莱尔·泰勒 这是我的密码 import java.io.*; import java.util.*; public class Javacomprog{ public static void main(String[] args) { //GET THE NAME

我想要的是要求用户输入三(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] + " ");  
       }
       


    }
    
}
import java.io.*;
导入java.util.*;
公共类JavaComplog{
公共静态void main(字符串[]args){
//先知道名字
字符串名称_1、名称_2、名称_3;
字符串打印=”;
//存储3个名称
字符串[]a_name=新字符串[3];
//组合名称
字符串[]c_name=新字符串[3];
扫描仪sc=新的扫描仪(System.in);
//在数组中存储用户输入的名称
System.out.println(“输入三个名字:”);
for(int i=0;i
您能解释一下如何使用for loop组合名称吗?谢谢。

解决方案 您可以使用两个for循环,两个for循环在标记处对应,以具有相同的名称

  • 我们在内部循环中比较
    i==j
    ,它们是相同的名称

  • 如果不等于,我们将打印名称

代码:

String[]a_name={“Max”,“Moritz”};
for(int i=0;i
您可以根据要查找的组合数量,使用嵌套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);
String[]name={“迈克”、“泰勒”、“布莱尔”};
列表组合=新的ArrayList();
对于(int i=0;i
我在比较两个整数而不是字符串
!(i==j)
可以被
i!=j
。谢谢你的建议。:)或者,您可以打印它们,而不是将它们添加到数组列表中。@roddyoffrozenpeas是的,如果它们只打算显示名称,而不打算显示其他内容。在这种情况下,我将它们储存在一个集合中,主要是出于习惯而非必要。
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);