这是MAIN里的:
/*
* 创建日期 2006-11-2
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author arron
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
import java.io.*;
import java.util.*;
public class AgendaService {
public static void main(String[] args){
Manipulate ma=new Manipulate();
String inputLine;
while(true){
//显示输入提示符号
System.out.print("$");
//输入接口
try{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
inputLine=in.readLine();//!inputLine前没用string
}catch(Exception exc){
System.out.println("警告:输入了不合法的字符!");
return;
}
//将输入的字符串转型为数组
StringTokenizer st = new StringTokenizer(inputLine);
String[] info=new String[7];
int i=0;
do{
info[i]=st.nextToken();
i++;
}while(st.hasMoreTokens());
//通过判断命令字调用其相关函数
if(info[0].equals("register")){
Manipulate.register(info);
}
else if(info[0].equals("add")){
Manipulate.add(info);
}
else if(info[0].equals("query")){
Manipulate.query(info);
}
else if(info[0].equals("delete")){
Manipulate.delete(info);
}
else if(info[0].equals("clear")){
Manipulate.clear(info);
}
else if(info[0].equals("batch")){
Manipulate.batch();
}
else if(info[0].equals("quit")){
break;
}else System.out.println("你输入了无法识别的命令字!");
}
}
}
这里是定义的两个类:
class Meeting {
static List meeting=new ArrayList();
}
class User{
static List user=new ArrayList();
}
下面是定义这些方法的类:
/*
* 创建日期 2006-11-4
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author arron
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
import java.util.*;
class Manipulate {
/*
* 定义命令字register
*/
static void register(String[] str){
int i=0;
for(Iterator e=User.user.iterator();e.hasNext();){
String a=(String)(e.next());
if(a.equals(str[1]))
i++;
}
if(i==0){
User.user.add(str[1]);
System.out.println("用户注册成功:)");
}else System.out.println("该用户名已被使用,注册用户失败:(");
}
/*
* 定义命令字add
*/
static void add(String[] str){
int i=0,j=0;
for(Iterator f=User.user.iterator();f.hasNext();){
String b=(String)(f.next());
//判断用户是否存在,以及用户名和密码是否匹配
if((b.equals(str[1]))&&(b.equals(str[2]))){
i++;
}
}
if(i==0){
System.out.println("你所输入的用户名或密码有错误,添加会议失败");
}else {
for(Iterator g=User.user.iterator();g.hasNext();){
String c=(String)(g.next());
if(c.equals(str[3]))
j++;
}
//判断被邀请的成员是否已经注册
if(j==0){
System.out.println("你所邀请的成员还没注册,添加会议失败");
}else{
Meeting.meeting.add(str);
System.out.println("你已成功添加会议");
}
}
}
/*
* 定义命令字query
*/
static void query(String[] str){
}
/*
* 定义命令字delete
*/
static void delete(String[] str){
int i=0,j=0;
for(Iterator f=User.user.iterator();f.hasNext();){
String b=(String)(f.next());
//判断用户是否存在,以及用户名和密码是否匹配
if((b.equals(str[1]))&&(b.equals(str[2]))){
i++;
}
}
if(i==0){
System.out.println("你所输入的用户名或密码有错误,删除会议失败");
}else {
//把meetingID存到第六位,以方便和meeting元素进行比较
String[] s={"","","","","","",str[3]};
for(Iterator k=Meeting.meeting.iterator();k.hasNext();){
String c=(String)(k.next());//...这里也有异常
//判断是否具有要删除的会议标识
if(c.equals(s[6]))
k.remove();
j++;
}
if(j==0){
System.out.println("你输入的meetingID不存在");
}else System.out.println("该meetingID所对应的会议已从议程中删除");
}
}
/*
* 定义命令字clear
*/
static void clear(String[] str){
int m=0,n=0;
for(Iterator f=User.user.iterator();f.hasNext();){
String b=(String)(f.next());
//判断用户是否存在,以及用户名和密码是否匹配
if((b.equals(str[1]))&&(b.equals(str[2]))){
m++;
}
}
if(m==0){
System.out.println("你所输入的用户名或密码有错误,删除会议失败");
}else{
for(Iterator g=Meeting.meeting.iterator();g.hasNext();){
String d=(String)(g.next());//这里出现异常????WHY
if(d.equals(str[1])){
g.remove();
n++;
}
}if(n==0){
System.out.println("该用户还没添加任何会议");
}else System.out.println("该用户的所有会议已经删除成功");
}
}
/*
* 定义命令字batch
*/
static void batch(){
}
}
抛出的异常说明是:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.String;
at Manipulate.clear(Manipulate.java:112)
at AgendaService.main(AgendaService.java:54)
那两个地方应该怎么改啊?
----------------解决方案--------------------------------------------------------
拜托各位看看啦。。。实在不会了
----------------解决方案--------------------------------------------------------
好了,自己搞定了,加上[]就OK啦
----------------解决方案--------------------------------------------------------