如何实现不能重复添加重复的名称
试过在for循环里添加一个if判断
if(this.name[i].equals(name)){}
很迷茫...
完整代码:
一
package library;
import java.awt.Container;
import java.util.Scanner;
public class Book {
private String name[];
private int state[];
private int count[];
Scanner sc =new Scanner(System.in);
public Book(){
name = new String[10];
state = new int[10];
count = new int[10];
name[0] = "云计算";
name[1] = "Linux";
name[2] = "Java";
state[0] = 1;
state[1] = 0;
state[2] = 0;
count[0] = 20;
count[1] = 20;
count[2] = 20;
}
//查看
public void List(){
System.out.println("------------------------------\n图书编号 图书名称 借出次数 当前状态\n------------------------------");
for(int i=0;i<name.length;i++){
if(name[i]==null){
continue;
}else{
if(this.state[i]==0){
System.out.println(" "+(i+1)+" "+name[i]+" "+""+count[i]+" "+"未借出");
}else{
System.out.println(" "+(i+1)+" "+name[i]+" "+count[i]+" "+"已借出");
}
}
}
}
//增加
public void Add(String name){
int n=0;
for(int i=0;i < count.length;i++){
if(this.name[i]!=null){
n=n+1;
}else if(this.name.equals(name)){
System.out.println("error");
}
}
this.name[n]=name;
this.state[n]=0;
this.count[n]=0;
System.err.println("书籍《"+name+"》,增加成功");
}
//删除
public int Del(int d){
if(this.name[d-1]==null){
System.err.println("数字有误,请重新输入");
return 1;
}else{
System.err.println("《"+this.name[d-1]+"》,删除成功");
for (int i = d;i<name.length;i++){
name[i-1]=name[i];
state[i-1]=state[i];
count[i-1]=count[i];
}
name[name.length-1]=null;
return 2;
}
}
//修改
public void Update(int u,String name){
if(this.name[u-1]!=null){
this.name[u-1]=name;
System.err.println("本书已修改为《"+this.name[u-1]+"》");
}else{
System.err.println("找不到该书,已自动添加到书架");
}
}
//借书
public void Loan(int s){
if(this.name[s-1]==null){
System.err.println("输入有误");
}else if(this.state[s-1]==1){
System.err.println(this.name[s-1]+"已借出");
}else{
this.state[s-1]=1;
this.count[s-1]=count[s-1]+1;
System.err.println("请输入借书时间");
int day = sc.nextInt();
//System.err.println("借出("+day+")天,花费("+(day*2)+")元");
System.err.println(this.name[s-1]+"借出成功!\n"+"借出("+day+")天,花费("+(day*2)+")元。");
}
}
//还书
public void Return(int r){
if(this.name[r-1]==null){
System.err.println("数字有误,请重新输入");
}else if(this.state[r-1]==0){
System.err.println(this.name[r-1]+"未借出");
}else{
this.state[r-1]=0;
System.err.println(this.name[r-1]+"归还成功");
}
}
}
二
package library;
import java.util.Scanner;
import org.w3c.dom.css.Counter;
public class project1 {
public static void main(String[] args){
Scanner sc =new Scanner(System.in);
Book b = new Book();
String r="";
try {
do{
System.out.println("欢迎进入图书馆系统");
System.out.println("请选择操作:");
System.out.println("--------------");
System.out.println("1.查询图书");
System.out.println("2.增加图书");
System.out.println("3.删除图书");
System.out.println("4.借出图书");
System.out.println("5.修改图书");
System.out.println("6.归还图书");
System.out.println("7.退出系统");
System.out.println("--------------");
System.out.println("请输入操作编号:");
String key="";
key = sc.next();
switch(key){
case "1":
// System.err.println("------------------------------\n图书编号 图书名称 借出次数 当前状态\n------------------------------");
b.List();
System.out.println("输入7退出系统,其他任意键返回");
r=sc.next();
break;
case "2":
System.out.println("请输入书本名称:");
b.Add(sc.next());
b.List();
System.out.println("输入7退出系统,其他任意键返回");
r=sc.next();
break;
case "3":
System.out.println("请输入要删除的图书序号:");
b.List();
b.Del(sc.nextInt());
b.List();
System.out.println("输入7退出系统,其他任意键返回");
r=sc.next();
break;
case "4":
System.out.println("请输入要借出的图书序号:");
b.List();
b.Loan(sc.nextInt());
b.List();
System.out.println("输入7退出系统,其他任意键返回");
r=sc.next();
break;
case "5":
System.out.println("请输入要修改的图书序号:");
b.List();
int id = sc.nextInt();
System.out.println("请输入要修改的名称");
String name =sc.next();
b.Update(id,name);
b.Add(name);
b.List();
System.out.println("输入7退出系统,其他任意键返回");
r=sc.next();
break;
case "6":
System.out.println("请输入要归还的图书序号:");
b.List();
b.Return(sc.nextInt());
b.List();
System.out.println("输入7退出系统,其他任意键返回");
r=sc.next();
break;
case "7":
System.out.println("程序运行结束");
return;
}
}while (!r.equals("7"));
System.out.println("程序运行结束");
} catch (Exception e) {
// TODO: handle exception
System.out.println("输入错误 , 请重新运行程序!");
}
}
}