比较char数组并打印最低值

时间:2014-10-13 20:43:01

标签: java arrays

我编写了这段代码来比较两个char数组,每次都打印少一个。

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]);
            }       
       }
 }

我的程序有什么问题,我该如何解决?提前谢谢。

4 个答案:

答案 0 :(得分:0)

假设a,b的长度相同,你想要将a的每个元素与b的元素进行比较 - 所以你的迭代限制应该是a的长度(或者b - 相同的假设在这里)

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

答案 1 :(得分:0)

您可以执行以下操作:

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]);               
   }
}

您不需要使用第三个变量c,尤其是如果您像使用它一样使用它,使用与其他两个数组长度不同的长度初始化它,抛出ArrayOutOfBoundException

答案 2 :(得分:0)

c不需要长度为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]);
            }
        }
然后将

c设置为a,b,a,d。

答案 3 :(得分:0)

谢谢你们!我欠你。我认为这部分代码更接近真实的结论:)

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]));  
 }  }
}

再次感谢您的支持:)