m0_56390311 2021-09-26 15:55 采纳率: 41.7%
浏览 34
已结题

这个java程序indexOf无法正确输出,怎么改


import java.util.Scanner;
class MyArrayList{
    private int size;
    private int CAPACITY=100;
    private String[] date=new String[CAPACITY];
    public MyArrayList() {
        Scanner sc=new Scanner(System.in);
        size=sc.nextInt();
        for(int i=0;i<size;i++){
            date[i]=sc.next();
        }
    }
    public void insert(){
    System.out.println("输入要插入的序数");
    Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        if(i<0||i>size) {
            System.out.println("插入的序数错误");
        }
        System.out.println("输入要插入的");
        for(int d=size-1;d>=i;d--){
            date[d+1]=date[d];
        }
        date[i]=sc.next();
        size++;
    }
    public void find(){
        System.out.println("输入要查找的序数");
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        if(i<0||i>size) {
            System.out.println("插入的序数错误");
        }
        System.out.println("要查找的数"+date[i]);
    }
    public void traverse(){
        for(int i=0;i<size;i++){
            System.out.println(date[i]);
        }
    }
    public void delete(){
    System.out.println("输入删除的序数");
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        if(i<0||i>=size) {
            System.out.println("山粗的序数错误");
        }
        for(int d=i;i<size;i++){
            date[i]=date[i+1];
        }
        size--;
    }
    public int getLength(){
    return size;
    }
    public boolean isEmpty(){
    if(date.length==0)return true;
    else return false;
    }
    public void clearList(){
        size=0;
    }
    public void replace(){
        System.out.println("输入替换的序数");
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        if(i<0||i>=size) {
            System.out.println("输入的序数错误");
        }
        else { System.out.println("输入新数"); 
                  date[i]=sc.next();  
         }    
    }
    public String getDate(){
         System.out.println("输入查找的序数");
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        if(i<0||i>=size) {
            return"输入的序数错误";
        }
        else  return date[i];          
    }
    public int indexOf() {
        System.out.println("输入查找的数据");
        Scanner sc=new Scanner(System.in);
        String data=sc.next();
        for(int i=0;i<size;i++){
            if(date[i]==data){
                return i;
            }
        }
        return -1;   
    }  
    public int reverseFind(){
        System.out.println("输入查找的数据");
        Scanner sc=new Scanner(System.in);
        String data=sc.next();
        for(int i=size-1;i>0;i++){
            if(date[i]==data){
                return i;
            }
        }
        return -1;   
    }
    public void endInsert(){
        Scanner sc=new Scanner(System.in);
        System.out.println("输入要插入的");
        date[size]=sc.next();
        size++;    
    }
}
public class TestArray{
    public static void main(String[] args){
        MyArrayList a=new MyArrayList();
        a.insert();
        a.find();
        a.traverse();
        a.delete();
        System.out.println("长度为"+a.getLength());
        if(a.isEmpty()==true)System.out.println("空");
        else System.out.println("非空");
        a.replace();
        System.out.println("数据为"+a.getDate());
        if(a.indexOf()==-1)System.out.println("无");
        else System.out.println("序号为"+a.indexOf());
        a.endInsert();
        a.clearList();
    }
}
  • 写回答

1条回答 默认 最新

  • 关注
    
    if(date[i]==data){
                    return i;
                }
    改为
    if(date[i].equals(data)){
                    return i;
                }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 创建了问题 9月26日