无法从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());
  }