无法从java中的数组中删除数据
我正在尝试从已添加的数组中删除数据,并希望基于一个变量专门删除此数据,以便从数组中获取所有数据,然后将其删除 获取一个表示以下内容的错误: 二进制运算符“-”的操作数类型错误 联机无法从java中的数组中删除数据,java,arrays,Java,Arrays,我正在尝试从已添加的数组中删除数据,并希望基于一个变量专门删除此数据,以便从数组中获取所有数据,然后将其删除 获取一个表示以下内容的错误: 二进制运算符“-”的操作数类型错误 联机arr[j]=新Studnet(arr{j+i].Getid……” Id是一个不能用它计算的字符串。(如getId()-1) 编辑: 这是一个非常简单的例子,向您展示了它是如何工作的……但是有不同的方法(也许更好的方法)来解决您的根本问题 for(int j=i;i
arr[j]=新Studnet(arr{j+i].Getid
……”
Id是一个不能用它计算的字符串。(如getId()-1) 编辑: 这是一个非常简单的例子,向您展示了它是如何工作的……但是有不同的方法(也许更好的方法)来解决您的根本问题
for(int j=i;i
您试图在字符串上减去1。这就是您出错的原因。
是否尝试以intger形式获取ID,然后减去1,以便将上一个ID分配给该学生对象
如果是,请尝试以下操作,将其转换为整数,然后再减去1:
Integer.parseInt(arr[j+1].getId())-1这就是问题所在,那么我是否需要更改运算符或从字符串更改为int?如果可能,您可以将其更改为int,并且问题应该得到解决……或者您可以使用“解析器”或“特殊”getter返回转换后的int。(如果字符串不可解析,可能例外)我不确定如何将Integer.parseInt添加到代码中。你能告诉我在哪里?我编辑我的答案,…在主题中你说它是javascript…但它是java对的吗?也许你应该编辑它。你能确切地告诉我在哪里实现Integer.parseInt吗?
private void removeStudent() {
if(count == 0){
System.out.println("No Records");
} else {
Scanner intput = new Scanner(System.in);
System.out.println("Enter an ID: ");
String id = intput.next();
int res = 0;
int loc = 0;
Student[] temp = new Student[10];
for(int i = 0; i < count; i++) {
if(arr[i].getId().equals(id)){
for(int j = i; i < arr.length - 1; j++) {
arr[j] = new Student(arr[j+1].getId() - 1, arr[j+1].getFname(), arr[j+1].getLname(), arr[j+1].getAge());
}
loc = i;
res = 1;
}
}
temp = null;
count--;
arr = temp;
Scanner scanner = new Scanner(System.in);
System.out.println("Removed Record");
scanner.nextLine();
if(res == 1) {
} else
System.out.println("No Result");
}
}
public class Student {
private String id;
private String fname;
private String lname;
private int age;
private int count;
Student(String id, String fname, String lname, int age, int count) {
this.id = id;
this.fname = fname;
this.lname = lname;
this.age = age;
this.count = count;
}
public String getId() {
return id;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
public double getAge() {
return age;
}
public int getCount() {
return count;
}
}
for(int j = i; i < arr.length - 1; j++){
int newId = Integer.parseInt(arr[j+1].getId()) -1;
arr[j] = new Student(Integer.toString(newId), arr[j+1].getFname(), arr[j+1].getLname(), arr[j+1].getAge());
}