XueJi510 2021-10-13 18:00 采纳率: 100%
浏览 345
已结题

Exception in thread "main" java.util.NoSuchElementException很多次都遇到这个错误,该改改哪里


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class AddressBook {
    String name;
    String sex;
    int phonenumber;
    AddressBook(String name,String sex,int phonenumber){
        this.name=name;
        this.sex=sex;
        this.phonenumber=phonenumber;
    }
    String getname() {
        return name;
    }
    String getsex() {
        return sex;
    }
    int getp() {
        return phonenumber;
    }
    void setn(String name) {
        this.name=name;
    }
    void seti(String sex) {
        this.sex=sex;
    }
    void setp(int phonenumber) {
        this.phonenumber=phonenumber;
    }
    
    public static ArrayList<AddressBook> addressbook=new ArrayList<AddressBook>();
    public static void main(String[] args) throws IOException {
        // TODO 自动生成的方法存根
        PrintWriter resultwriter=null;
        Scanner readQuery=null;
        Scanner readRecord=null;
        try {
        File record=new File("D:\\java\\javaeclipse\\java_Sourse\\src\\PTA\\record.txt");
        File query=new File("D:\\java\\javaeclipse\\java_Sourse\\src\\PTA\\query.txt");
        File result=new File("D:\\java\\javaeclipse\\java_Sourse\\src\\PTA\\result.txt");
        resultwriter=new PrintWriter(result);
        readRecord=new Scanner(new FileReader(record));
        readQuery=new Scanner(new FileReader(query));
        int lineNumber=readRecord.nextInt();
        for(int i=0;i<lineNumber;i++) {
            for(int j=0;j<3;j++)
            {
                String a=new String(readRecord.next());
                String b=new String(readRecord.next());
                int c=readRecord.nextInt();
                addressbook.add(new AddressBook(a,b,c));
            }
        }
        int column=readQuery.nextInt();
        Object Obj=(Object)readQuery.next();
        
            for(int i=0;i<lineNumber;i++) {
                AddressBook e=addressbook.get(i);
                if(column==1&&e.getname()==Obj) {
                    resultwriter.print(e.getname()+" ");
                    resultwriter.print(e.getsex()+" ");
                    resultwriter.println(e.getp());
                }
                if(column==2&&e.getsex()==Obj) {
                    resultwriter.print(e.getname()+" ");
                    resultwriter.print(e.getsex()+" ");
                    resultwriter.println(e.getp());
                }
                if(column==3&&e.getp()==(int)Obj) {
                    resultwriter.print(e.getname()+" ");
                    resultwriter.print(e.getsex()+" ");
                    resultwriter.println(e.getp());
                }
            }
        }catch(FileNotFoundException e) {
            e.printStackTrace();
        }
        
    }
}

img

不知道到底应该怎么改,很多次都遇到这种情况。有没有哪个同学帮我看看。

  • 写回答

4条回答 默认 最新

  • qq_34370249 2021-10-13 18:16
    关注

    不能用一个Scanner吗?用两个Scanner会报错的,Scanner是可以重复使用的,只要把当前的输入的变量保存起来就好了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 已采纳回答 5月5日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘