Java 比较字符数组并打印最低值

Java 比较字符数组并打印最低值,java,arrays,Java,Arrays,我编写这段代码是为了比较两个字符数组,每次打印较少的字符数组 public class CompareCharArrays { public void buildingArrays() { char[] a={'a','b','c','d'}; char[]b={'l','f','a','g'}; char[]c=new char[8]; for(int i=0; i<c.length;i++){

我编写这段代码是为了比较两个字符数组,每次打印较少的字符数组

public class CompareCharArrays {
    public void buildingArrays() {
        char[] a={'a','b','c','d'};
        char[]b={'l','f','a','g'};
        char[]c=new char[8];
        for(int i=0; i<c.length;i++){
            if(a[i]<b[i]){
                c=a;
                System.out.println("Element from array a: "+c[i]);
            } else {
                c=b;
                System.out.println("Element from array b: "+c[i]);
            }       
       }
 }
公共类比较数组{
公共无效建筑阵列(){
char[]a={'a','b','c','d'};
char[]b={'l','f','a','g'};
char[]c=新字符[8];

对于(int i=0;i假设a,b的长度相同,您希望将a的每个元素与b的一个元素进行比较-因此您的迭代限制应为a的长度(或b的长度-此处假设相同)


如果它们的长度不同,则在较短的长度上迭代,然后只输出较长长度的剩余值。

您可以简单地执行以下操作:

public class CompareCharArrays {
    public void buildingArrays() {
        char[] a = {'a','b','c','d'};
        char[] b = {'l','f','a','g'};
        for(int i=0 ; i<a.length ; i++)
            System.out.println("Element from array " + (a[i] < b[i] ? "a : " + a[i] : "b : " + b[i]);               
   }
}
公共类比较数组{
公共无效建筑阵列(){
char[]a={'a','b','c','d'};
char[]b={'l','f','a','g'};

对于(inti=0;ic)而言,长度不需要为8,而需要为4。 你说的是c=a,但你的意思是c[i]=a[i]

纠正这两个错误会导致:

        char[] a={'a','b','c','d'};
        char[] b={'l','f','a','g'};
        char[] c= new char[4];
        for(int i=0; i<c.length;i++){
            if(a[i]<b[i]){
                c[i]=a[i];
                System.out.println("Element from array a: "+c[i]);
            } else {
                c[i]=b[i];
                System.out.println("Element from array b: "+c[i]);
            }
        }
char[]a={'a','b','c','d'};
char[]b={'l','f','a','g'};
char[]c=新字符[4];

因为(int i=0;i谢谢你们!我欠你们的。我认为这部分代码更接近于真正的结论:)

公共类比较数组{
公共空间比尔丁格里斯(){
char[]a={'a','b','c','d'};
char[]b={'l','f','a','g'};

对于(int i=0;i每次少一个是什么意思?您可能需要定义“少一个”(还要注意
a[7]“我的程序有什么问题…”--好问题。我们应该猜猜吗?或者你打算告诉我们问题是什么?你根本不需要
c
,它只是在你的代码中引入了
ArrayOutOfBoundException
。不,兄弟们!我想比较这两个数组中的每个元素:例如a[0]和b[0]。如果a[0]小于b[0]我先打印较小的元素,然后打印较大的元素。您的答案被标记为低质量答案,请提供一些信息谢谢!问题是:此代码和前一个代码只给我4个字符。我需要全部8个字符。我如何才能做到这一点?也许我必须在第三个数组中包含这两个数组,然后比较元素一步一步?
public class CompareCharArrays {
public void biuldingArrays() {
    char[] a={'a','b','c','d'};
char[]b={'l','f','a','g'};
for(int i=0; i<a.length;i++){
System.out.println("The first element is :"+(a[i] < b[i] ? "a : " + a[i]+" "+b[i] : "b : " + b[i]+  " "+ a[i]));  
 }  }
}