请人帮我看看我的代码,报空指针的错误

问题描述

下面的是我的代码中的一个类,主要问题就是在我添加DVD过后,再删除添加的DVD.然后添加新的DVD后就会报错报错的是这句话:if(dvd[i].name.compareToIgnoreCase("")==0){packagecom.jb.cdjj.s1t112.chapter16.t1;importjava.util.Scanner;importjavax.swing.JOptionPane;publicclassMiniDvdManager{Scannerinput=newScanner(System.in);MiniDvd[]dvd=newMiniDvd[100];intindex=0;inttemp=-1;/***do{inttemp=-1;temp=JOptionPane.showConfirmDialog(null,*"<html><fontcolor='red'>红色的字</font><br>*其他字</html>","chooseone",JOptionPane.YES_NO_OPTION);}while(temp==0);*//**建立主菜单,菜单选项有:1.新增,2.查看,3删除,4.借出,5.归还,6.退出*/publicvoidmenuDvd(){initDvd();booleanisRight=true;do{Stringnum=JOptionPane.showInputDialog("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^n"+"┏┯┓┏┯┓D┏┯┓┏┯┓┏┯┓n"+"┠迷┨┠你┨v┇┠管┨┠理┨┠器┨n"+"┗┷┛┗┷┛D┗┷┛┗┷┛┗┷┛n"+"-------------------------------------------------------------n"+"┏━━━━━━━━━┓n"+"┃◤1.新增DVD◥┃n"+"┃┇2.查看DVDゞ┃n"+"┃┇3.删除DVDゞ┃n"+"┃┇4.借出DVDゞ┃n"+"┃┇5.归还DVDゞ┃n"+"┃◣6.退出DVD◢┃n"+"┗━━━━━━━━━┛n"+"ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇn"+"请选择(数字1-6):");intno=Integer.parseInt(num);switch(no){case1:addDvd();break;case2:lookUpDvd();break;case3:deleteDvd();break;case4:lendDvd();break;case5:chargeDvd();break;case6:JOptionPane.showMessageDialog(null,"谢谢使用!");System.exit(0);default:JOptionPane.showMessageDialog(null,"<html><fontcolor='red'>输入错误,请重新输入!");continue;}}while(isRight);}/**初始化*/publicvoidinitDvd(){for(inti=0;i<dvd.length;i++){dvd[i]=newMiniDvd();dvd[i].name="";dvd[i].state=-1;dvd[i].date=null;}}/**新增DVD*/publicvoidaddDvd(){do{Stringname=JOptionPane.showInputDialog("···→新增DVDnn请输入名称:");for(inti=0;i<dvd.length;i++){if(dvd[i].name.compareToIgnoreCase("")==0){dvd[i].name=name;dvd[i].state=1;JOptionPane.showMessageDialog(null,"<html><fontcolor='green'>添加《"+dvd[i].name+"》DVD成功!");break;}}//JOptionPane.showConfirmDialog(null,//"<html><fontcolor='red'>红色的字</font><br>其他字</html>","chooseone",//JOptionPane.YES_NO_OPTION);temp=JOptionPane.showConfirmDialog(null,"<html><fontcolor='red'>是否继续添加DVD","chooseone",JOptionPane.YES_NO_OPTION);}while(temp==0);}/**查看DVD*/publicvoidlookUpDvd(){StringBuffersearDvd=newStringBuffer();inttemp=0;for(inti=0;i<dvd.length;i++){if(dvd[i].name.compareToIgnoreCase("")!=0){searDvd.append(dvd[i].toString()+"n");temp++;continue;}elseif(temp==0&&i==dvd.length-1){JOptionPane.showMessageDialog(null,"<html><fontcolor=#CE0000>尚未添加任何DVD信息,自动返回主菜单");return;}}JOptionPane.showMessageDialog(null,searDvd);}/**删除DVD*/publicvoiddeleteDvd(){StringdelName=JOptionPane.showInputDialog("···→删除DVDnn请输入名称:");Stringname=delName;for(inti=0;i<dvd.length;i++){if(dvd[i].name.compareToIgnoreCase("")!=0&&dvd[i].name.equalsIgnoreCase(name)&&dvd[i].state==1){intj=i;while(dvd[j+1].name.compareToIgnoreCase("")!=0){dvd[j].name=dvd[j+1].name;dvd[j].state=dvd[j+1].state;dvd[j].date=dvd[j+1].date;j++;}//最后一个不为空的元素置空dvd[j].name=null;dvd[j].date=null;JOptionPane.showMessageDialog(null,"删除《"+name+"》成功!");return;}elseif(dvd[i].name!=null&&dvd[i].name.equalsIgnoreCase(name)&&dvd[i].state==0){break;//标识位}elseif(dvd[i].name.equalsIgnoreCase("")){JOptionPane.showMessageDialog(null,"<html><fontcolor=#CE0000>未找到《"+name+"》DVD信息,自动返回主菜单!");return;}}}/**借出DVD*/publicvoidlendDvd(){while(true){StringdelName=JOptionPane.showInputDialog("···→借出DVDnn请输入名称:");Stringname=delName;for(inti=0;i<dvd.length;i++){if(dvd[i].name==null){//无匹配JOptionPane.showMessageDialog(null,"没有找到匹配信息!");break;}elseif(dvd[i].name.equals(name)&&dvd[i].state==1){JOptionPane.showConfirmDialog(null,"找到匹配可借!是否借出?");return;}elseif(dvd[i].equals(name)&&dvd[i].state==0){JOptionPane.showConfirmDialog(null,"找到匹配,已被借出!");break;}}}}/**归还DVD*/publicvoidchargeDvd(){}}

时间: 2024-12-26 15:23:45

请人帮我看看我的代码,报空指针的错误的相关文章

paacal-dp 滑雪 请帮我看看我的代码哪里错了 特别是search过程 谢谢!

问题描述 dp 滑雪 请帮我看看我的代码哪里错了 特别是search过程 谢谢! 滑雪是一项非常刺激的运动,为了获得速度,滑雪的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.给出一个由二维数组表示的滑雪区域,数组的数字代表各点的高度.请你找出这个区域中最长的滑坡. 下面是一个例子: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当

请高手帮我看一下代码出现什么问题

问题描述 请高手帮我看一下代码出现什么问题,就是红色部分出现问题!红色部分问题描述为:多步OLEDB操作产生错误.如果可能,请检查每个OLEDB状态值.没有工作被完成.usingSystem;usingSystem.Data;usingSystem.Data.OleDb;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usin

急!!!请大家帮我看一下代码,哪错了~这是点击一个添加按钮的代码

问题描述 protectedvoidButton2_Click(objectsender,EventArgse){stringname=this.T168.Value;stringa=this.D82.Value;stringb=this.T169.Value;stringc=this.T170.Value;stringd=this.T171.Value;stringee=this.D83.Value;stringf=this.D84.Value;stringg=this.D85.Value;s

visual studio 2010-请大家帮我看一行代码是什么意思?是VS2010语言中的

问题描述 请大家帮我看一行代码是什么意思?是VS2010语言中的 activeDispatcher = srv1.GetDispatcher() ?? default(BaseDispatcher); 解决方案 srv1.GetDispatcher()会返回一个Dispatcher,传给activeDispatcher,如果srv1.GetDispatcher()返回null,那么就让activeDispatcher = default(BaseDispatcher),但是其实default作用

循环添加-请各位大神帮我看看我的问题出现在哪里?

问题描述 请各位大神帮我看看我的问题出现在哪里? 解决方案 这种问题无法回答.因为你提供的有用信息太少. 你不能沉浸在你的问题中,而假定别人知道你问题的上下文. 你得把你打算做什么,你怎么做,遇到什么问题说清楚. 特别是,你的数据库是什么样的. 另外一个明显的问题是stmt,你应该用类似如下的代码初始化: conn.prepareStatement(你的查询); 可以参考:http://blog.csdn.net/yangjizhong/article/details/4793760 解决方案二

更新-最近学习java的缓存机制,请大家看看我的代码有什么不足

问题描述 最近学习java的缓存机制,请大家看看我的代码有什么不足 一个简单的测试类,如果在高并发下会有问题么 package com.test.cache;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;public class CacheManager { private volatile static CacheManager cacheManager;//缓存类的实例 private long upDa

path-c++代码,请高手帮我看一下这个代码怎么修改

问题描述 c++代码,请高手帮我看一下这个代码怎么修改 return 0; } TCHAR szPath[MAX_PATH] = { 0 }; HRESULT hr; hr = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, szPath); if(SUCCEEDED(hr)) { CString strPath = szPath; strPath += _T("\temp"); hr = ::URLDow

c++-请大家帮我看下这段实现链表操作的C++的代码。

问题描述 请大家帮我看下这段实现链表操作的C++的代码. push_front这个操作有问题. #include <iterator> using namespace std; template <typename T> class List{ struct node{ node() = default; node(const T& x, node *y=nullptr) :m_data(x), m_next(y) {} T m_data; node *m_next; };

css百度分享-请高手帮改一个CSS代码 让百度分享和文章链接并排

问题描述 请高手帮改一个CSS代码 让百度分享和文章链接并排 .Article-Tool{ border:1px solid #c3d4e7; position:relative; top:-1px; text-align:right; padding:8px; vertical-align:middle; height:15px; background-color:#f4f8fd} .Article-Tool a{width:16px;height:16px;line-height:16px;