- Java code
public String [] dvd = new String [50] ; //储存DVD信息 public int[] Lendstate = new int [50] ;//借出状态,0为已借出,1为可借出 public String[] data = new String [50];//定义日期 Scanner sc = new Scanner (System.in); //借出DVD public void lentdvd (){ String lentname=""; boolean zhi = true; System.out.println("可以借出的DVD:"); for (int w=0;w<dvd.length;w++){ if (dvd[w]!=null){ System.out.println(dvd[w]); } } System.out.println("请输入需要借出的DVD:"); //for (int t=0;t<data.length;t++){ lentname = sc.next(); int random = (int)(Math.random()*49); System.out.println("请输入借出的日期(以-号分隔,参照:2012-06-01):"); String riqi = sc.next(); if (data[random]==null){ data[random]=riqi;//////////////////无法将这个值放入数组,而且在下面无法获取 } for (int r=0;r<dvd.length;r++){ if (lentname.equalsIgnoreCase(dvd[r])&&Lendstate[r]==1){ System.out.println("借出成功!"); //Lendstate=1; //定义借出成功状态 Lendstate[r]=0; zhi=true; } //} } if (zhi==false){ System.out.println("借出失败"); System.out.println(); } for (int q=0;q<data.length;q++){ if (data[q]!=null){ System.out.println(data[q]); } } } /////////////////////////////////////////////////////////归还DVD public void returndvd (){ boolean zhi = true; System.out.println("请输入DVD名称:"); String returnName = sc.next(); for (int c=0;c<data.length;c++){ if (data[c]!=null){ System.out.println(data[c]); } } System.out.println("请输入归还的日期(以-号分隔,参照:2012-06-01):"); String sReturn = sc.next();//归还的日期 String sBorrow=""; for (int e=0;e<dvd.length;e++){ if ((returnName.equalsIgnoreCase(dvd[e]))&&Lendstate[e]==0&&data[e]!=null){ zhi=true; sBorrow=data[e];/////////////这一步有错,但按照逻辑来说是没错的 } } if (zhi==true){ final double MILLS_TO_DAY = 1000d * 60 * 60 * 24; // 可以加一些格式验证 SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); Date borrowDate = null; Date returnDate = null; try { borrowDate = formater.parse(sBorrow); returnDate = formater.parse(sReturn); } catch (ParseException e) { e.printStackTrace(); } //else{ //System.out.println("归还失败!"); System.out.println("供需支付(元):"+(returnDate.getTime() - borrowDate.getTime())/ MILLS_TO_DAY); }}
在借出DVD的时候,录入日期,可以把数据存入到数组。但在归还DVD的时候不能调用,提示是空串,高手帮忙解决下,谢谢了、
------解决方案--------------------
当然不对了,借出的时候,日期和DVD的数组元素位置并不一致,也就是日期是随机存入数组的某个位置,所以还DVD的时候,和DVD对应的位置不一定有日期
- Java code
int random = (int)(Math.random()*49); //不知道这个随机的意义是什么 System.out.println("请输入借出的日期(以-号分隔,参照:2012-06-01):"); String riqi = sc.next(); //if (data[random]==null){ // data[random]=riqi;//这里是随机保存,和DVD的位置不一致 //} for (int r=0;r<dvd.length;r++){ if (lentname.equalsIgnoreCase(dvd[r])&&Lendstate[r]==1){ System.out.println("借出成功!"); //Lendstate=1; //定义借出成功状态 Lendstate[r]=1; data[r] = riqi; //在这里设置借书日期 zhi=true; } //} }