读书人

一段java小程序的有关问题

发布时间: 2012-02-24 16:30:39 作者: rapoo

一段java小程序的问题
现在有两个数组,数组A里面装的是些部门信息(部门编号、部门名称),数组B里面有员工信息(部门编号、员工名称)

我要打印出来的效果是:产品部--------
张三:LLLL
李四:LLLL
实施部--------
核武:LLLL
销售部--------
三五:LLLL
互补:LLLL
市场部--------
李婷:LLLL
人力资源部--------
小虎:LLLL


public static void main(String[] args) {
String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};
String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};
String a=null;
for (int i = 0; i < deptInfo.length; i++) {

if(i%2==0){

a=deptInfo[i];

System.out.println(deptInfo[i+1]+"--------");
}

for (int j = 0; j < employeeInfo.length; j++) {

if(j%2==0){

if(a.equals(employeeInfo[j])){

System.out.println(employeeInfo[j+1]+":LLLL");
}

}

}

}

}



不知道我代码哪里有问题,为什么打印员工信息的时候,都重复执行两遍。打印后效果如下产品部--------
张三:LLLL
李四:LLLL
张三:LLLL
李四:LLLL
实施部--------
核武:LLLL
核武:LLLL
销售部--------
三五:LLLL
互补:LLLL
三五:LLLL
互补:LLLL
市场部--------
李婷:LLLL
李婷:LLLL
人力资源部--------
小虎:LLLL
小虎:LLLL


[解决办法]
for example

Java code
String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};String a=null;for (int i = 0; i < deptInfo.length; i+=2) {    a=deptInfo[i];    System.out.println(deptInfo[i]+"--------");    for (int j = 0; j < employeeInfo.length-1; j+=2) {        if(a.equals(employeeInfo[j])){            System.out.println(employeeInfo[j+1]+":LLLL");        }    }}
[解决办法]
当下标为奇数时,a的值仍为上一次偶数的赋值,所以重复了。
如:当i=1时,a的值仍为0。
这是我改的
[code=Java][/code]String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};
String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};
String a=null;
for (int i = 0; i < deptInfo.length; i++) {

if(i%2==0){

a=deptInfo[i];

System.out.println(deptInfo[i+1]+"--------");
}else
a=null;//当下标位置为部门名称时清空

for (int j = 0; j < employeeInfo.length; j++) {

if(j%2==0){

if(a!=null)//判断是否为空
if(a.equals(employeeInfo[j])){


System.out.println(employeeInfo[j+1]+":LLLL");

}

}

}//a=null; 这里清空也行!

}
}
[解决办法]
当下标为奇数时,a的值仍为上一次偶数的赋值,所以重复了。
如:当i=1时,a的值仍为0。
这是我改的
Java code
        String []deptInfo=new String []{"1","产品部","2","实施部","3","销售部","4","市场部","5","人力资源部"};        String []employeeInfo=new String[]{"3","三五","3","互补","4","李婷","1","张三","1","李四","2","核武","5","小虎"};        String a=null;        for (int i = 0; i < deptInfo.length; i++) {        if(i%2==0){        a=deptInfo[i];                 System.out.println(deptInfo[i+1]+"--------");        }else            a=null;//当下标位置为部门名称时清空                for (int j = 0; j < employeeInfo.length; j++) {        if(j%2==0){                        if(a!=null)//判断是否为空        if(a.equals(employeeInfo[j])){                    System.out.println(employeeInfo[j+1]+":LLLL");                }        }        }//a=null; 这里清空也行!        }    } 


[解决办法]
支持一下很不错支持一下很不错

读书人网 >J2EE开发

热点推荐